Merge remote-tracking branch 'origin/master'
This commit is contained in:
		
						commit
						9b7e2823ea
					
				| @ -1,8 +1,8 @@ | ||||
| ; App name that shows on every page title | ||||
| APP_NAME = Gogs: Go Git Service | ||||
| APP_LOGO = img/favicon.png | ||||
| ; !!MUST CHANGE TO YOUR USER NAME!! | ||||
| RUN_USER = skyblue | ||||
| ; Change it if you run locally | ||||
| RUN_USER = git | ||||
| ; Either "dev", "prod" or "test", default is "dev" | ||||
| RUN_MODE = dev | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										15
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								gogs.go
									
									
									
									
									
								
							| @ -7,7 +7,6 @@ package main | ||||
| 
 | ||||
| import ( | ||||
| 	"os" | ||||
| 	// "os/user"
 | ||||
| 	"runtime" | ||||
| 
 | ||||
| 	"github.com/codegangsta/cli" | ||||
| @ -27,21 +26,7 @@ func init() { | ||||
| 	runtime.GOMAXPROCS(runtime.NumCPU()) | ||||
| } | ||||
| 
 | ||||
| // func checkRunUser() bool {
 | ||||
| // 	u, err := user.Current()
 | ||||
| // 	if err != nil {
 | ||||
| // 		// TODO: log
 | ||||
| // 		return false
 | ||||
| // 	}
 | ||||
| // 	return u.Username == base.Cfg.MustValue("", "RUN_USER")
 | ||||
| // }
 | ||||
| 
 | ||||
| func main() { | ||||
| 	/*if !checkRunUser() { | ||||
| 		println("The command should be run as", base.Cfg.MustValue("", "RUN_USER")) | ||||
| 		return | ||||
| 	}*/ | ||||
| 
 | ||||
| 	app := cli.NewApp() | ||||
| 	app.Name = "Gogs" | ||||
| 	app.Usage = "Go Git Service" | ||||
|  | ||||
| @ -259,16 +259,11 @@ func NewConfigContext() { | ||||
| 	Cfg.BlockMode = false | ||||
| 
 | ||||
| 	cfgPath = filepath.Join(workDir, "custom/conf/app.ini") | ||||
| 	if !com.IsFile(cfgPath) { | ||||
| 		fmt.Println("Custom configuration not found(custom/conf/app.ini)\n" + | ||||
| 			"Please create it and make your own configuration!") | ||||
| 		os.Exit(2) | ||||
| 
 | ||||
| 	} | ||||
| 
 | ||||
| 	if err = Cfg.AppendFiles(cfgPath); err != nil { | ||||
| 		fmt.Printf("Cannot load config file '%s'\n", cfgPath) | ||||
| 		os.Exit(2) | ||||
| 	if com.IsFile(cfgPath) { | ||||
| 		if err = Cfg.AppendFiles(cfgPath); err != nil { | ||||
| 			fmt.Printf("Cannot load config file '%s'\n", cfgPath) | ||||
| 			os.Exit(2) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	AppName = Cfg.MustValue("", "APP_NAME", "Gogs: Go Git Service") | ||||
| @ -276,7 +271,16 @@ func NewConfigContext() { | ||||
| 	AppUrl = Cfg.MustValue("server", "ROOT_URL") | ||||
| 	Domain = Cfg.MustValue("server", "DOMAIN") | ||||
| 	SecretKey = Cfg.MustValue("security", "SECRET_KEY") | ||||
| 
 | ||||
| 	RunUser = Cfg.MustValue("", "RUN_USER") | ||||
| 	curUser := os.Getenv("USERNAME") | ||||
| 	if len(curUser) == 0 { | ||||
| 		curUser = os.Getenv("USER") | ||||
| 	} | ||||
| 	if RunUser != curUser { | ||||
| 		fmt.Printf("Expect user(%s) but current user is: %s\n", RunUser, curUser) | ||||
| 		os.Exit(2) | ||||
| 	} | ||||
| 
 | ||||
| 	EnableHttpsClone = Cfg.MustBool("security", "ENABLE_HTTPS_CLONE", false) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										44
									
								
								serve.go
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								serve.go
									
									
									
									
									
								
							| @ -49,7 +49,7 @@ func init() { | ||||
| 	level := "0" | ||||
| 	os.MkdirAll("log", os.ModePerm) | ||||
| 	log.NewLogger(10000, "file", fmt.Sprintf(`{"level":%s,"filename":"%s"}`, level, "log/serv.log")) | ||||
| 	log.Info("start logging...") | ||||
| 	log.Trace("start logging...") | ||||
| } | ||||
| 
 | ||||
| func parseCmd(cmd string) (string, string) { | ||||
| @ -73,6 +73,8 @@ func In(b string, sl map[string]int) bool { | ||||
| } | ||||
| 
 | ||||
| func runServ(k *cli.Context) { | ||||
| 	log.Trace("new serv request") | ||||
| 
 | ||||
| 	base.NewConfigContext() | ||||
| 	models.LoadModelsConfig() | ||||
| 	models.NewEngine() | ||||
| @ -80,17 +82,20 @@ func runServ(k *cli.Context) { | ||||
| 	keys := strings.Split(os.Args[2], "-") | ||||
| 	if len(keys) != 2 { | ||||
| 		fmt.Println("auth file format error") | ||||
| 		log.Error("auth file format error") | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	keyId, err := strconv.ParseInt(keys[1], 10, 64) | ||||
| 	if err != nil { | ||||
| 		fmt.Println("auth file format error") | ||||
| 		log.Error("auth file format error") | ||||
| 		return | ||||
| 	} | ||||
| 	user, err := models.GetUserByKeyId(keyId) | ||||
| 	if err != nil { | ||||
| 		fmt.Println("You have no right to access") | ||||
| 		log.Error("You have no right to access") | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| @ -105,6 +110,7 @@ func runServ(k *cli.Context) { | ||||
| 	rr := strings.SplitN(rRepo, "/", 2) | ||||
| 	if len(rr) != 2 { | ||||
| 		println("Unavilable repository", args) | ||||
| 		log.Error("Unavilable repository %v", args) | ||||
| 		return | ||||
| 	} | ||||
| 	repoName := rr[1] | ||||
| @ -122,11 +128,12 @@ func runServ(k *cli.Context) { | ||||
| 			isExist = false | ||||
| 			if isRead { | ||||
| 				println("Repository", user.Name+"/"+repoName, "is not exist") | ||||
| 				log.Error("Repository " + user.Name + "/" + repoName + " is not exist") | ||||
| 				return | ||||
| 			} | ||||
| 		} else { | ||||
| 			println("Get repository error:", err) | ||||
| 			log.Error(err.Error()) | ||||
| 			log.Error("Get repository error: " + err.Error()) | ||||
| 			return | ||||
| 		} | ||||
| 	} | ||||
| @ -142,6 +149,7 @@ func runServ(k *cli.Context) { | ||||
| 		} | ||||
| 		if !has { | ||||
| 			println("You have no right to write this repository") | ||||
| 			log.Error("You have no right to access this repository") | ||||
| 			return | ||||
| 		} | ||||
| 	case isRead: | ||||
| @ -161,10 +169,12 @@ func runServ(k *cli.Context) { | ||||
| 		} | ||||
| 		if !has { | ||||
| 			println("You have no right to access this repository") | ||||
| 			log.Error("You have no right to access this repository") | ||||
| 			return | ||||
| 		} | ||||
| 	default: | ||||
| 		println("Unknown command") | ||||
| 		log.Error("Unknown command") | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| @ -175,23 +185,23 @@ func runServ(k *cli.Context) { | ||||
| 			_, err = models.CreateRepository(user, repoName, "", "", "", false, true) | ||||
| 			if err != nil { | ||||
| 				println("Create repository failed") | ||||
| 				log.Error(err.Error()) | ||||
| 				log.Error("Create repository failed: " + err.Error()) | ||||
| 				return | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 		rep, err = git.OpenRepository(repoPath) | ||||
| 		if err != nil { | ||||
| 			println("OpenRepository failed:", err.Error()) | ||||
| 			log.Error(err.Error()) | ||||
| 			return | ||||
| 		} | ||||
| 	rep, err = git.OpenRepository(repoPath) | ||||
| 	if err != nil { | ||||
| 		println("OpenRepository failed:", err.Error()) | ||||
| 		log.Error("OpenRepository failed: " + err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	refs, err := rep.AllReferencesMap() | ||||
| 	if err != nil { | ||||
| 		println("Get All References failed:", err.Error()) | ||||
| 		log.Error(err.Error()) | ||||
| 		log.Error("Get All References failed: " + err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| @ -208,7 +218,7 @@ func runServ(k *cli.Context) { | ||||
| 
 | ||||
| 	if err = gitcmd.Run(); err != nil { | ||||
| 		println("execute command error:", err.Error()) | ||||
| 		log.Error(err.Error()) | ||||
| 		log.Error("execute command error: " + err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| @ -236,6 +246,7 @@ func runServ(k *cli.Context) { | ||||
| 	} | ||||
| 	if refname == "" { | ||||
| 		println("No find any reference name:", b.String()) | ||||
| 		log.Error("No find any reference name: " + b.String()) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| @ -248,17 +259,18 @@ func runServ(k *cli.Context) { | ||||
| 		refs, err = rep.AllReferencesMap() | ||||
| 		if err != nil { | ||||
| 			println("Get All References failed:", err.Error()) | ||||
| 			log.Error(err.Error()) | ||||
| 			log.Error("Get All References failed: " + err.Error()) | ||||
| 			return | ||||
| 		} | ||||
| 		if ref, ok = refs[refname]; !ok { | ||||
| 			log.Error("unknow reference name -", refname, "-", b.String()) | ||||
| 			log.Error("unknow reference name -", refname, "-", b.String()) | ||||
| 			return | ||||
| 		} | ||||
| 		l, err = ref.AllCommits() | ||||
| 		if err != nil { | ||||
| 			println("Get All Commits failed:", err.Error()) | ||||
| 			log.Error(err.Error()) | ||||
| 			log.Error("Get All Commits failed: " + err.Error()) | ||||
| 			return | ||||
| 		} | ||||
| 	} else { | ||||
| @ -268,14 +280,14 @@ func runServ(k *cli.Context) { | ||||
| 		last, err = ref.LastCommit() | ||||
| 		if err != nil { | ||||
| 			println("Get last commit failed:", err.Error()) | ||||
| 			log.Error(err.Error()) | ||||
| 			log.Error("Get last commit failed: " + err.Error()) | ||||
| 			return | ||||
| 		} | ||||
| 
 | ||||
| 		ref2, err := rep.LookupReference(ref.Name) | ||||
| 		if err != nil { | ||||
| 			println("look up reference failed:", err.Error()) | ||||
| 			log.Error(err.Error()) | ||||
| 			log.Error("look up reference failed: " + err.Error()) | ||||
| 			return | ||||
| 		} | ||||
| 
 | ||||
| @ -283,7 +295,7 @@ func runServ(k *cli.Context) { | ||||
| 		before, err := ref2.LastCommit() | ||||
| 		if err != nil { | ||||
| 			println("Get last commit failed:", err.Error()) | ||||
| 			log.Error(err.Error()) | ||||
| 			log.Error("Get last commit failed: " + err.Error()) | ||||
| 			return | ||||
| 		} | ||||
| 		//log.Info("----", before.Id(), "-----", last.Id())
 | ||||
|  | ||||
| @ -6,9 +6,9 @@ | ||||
|         <ul class="list-group"> | ||||
|             <li class="list-group-item"><a href="/user/setting">Account Profile</a></li> | ||||
|             <li class="list-group-item"><a href="/user/setting/password">Password</a></li> | ||||
|             <li class="list-group-item"><a href="/user/setting/notification">Notifications</a></li> | ||||
|             <!-- <li class="list-group-item"><a href="/user/setting/notification">Notifications</a></li> --> | ||||
|             <li class="list-group-item"><a href="/user/setting/ssh/">SSH Keys</a></li> | ||||
|             <li class="list-group-item"><a href="/user/setting/security">Security</a></li> | ||||
|             <!-- <li class="list-group-item"><a href="/user/setting/security">Security</a></li> --> | ||||
|             <li class="list-group-item list-group-item-success"><a href="/user/delete">Delete Account</a></li> | ||||
|         </ul> | ||||
|     </div> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user