aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuXiaoHei <fuxiaohei@hexiaz.com>2014-03-25 19:39:57 +0800
committerFuXiaoHei <fuxiaohei@hexiaz.com>2014-03-25 19:39:57 +0800
commit9b7e2823ead36c90e656ce76fcbb464f7a490363 (patch)
tree201fdf621b9d1a5f3e954529e4e5d8e2f9429ac0
parent5d67960b1e812c2b455c93ec9c86d72c9c9a7f5b (diff)
parentca49acfe67cee4b5d4be40519b83d9107833e60d (diff)
Merge remote-tracking branch 'origin/master'
-rw-r--r--conf/app.ini4
-rw-r--r--gogs.go15
-rw-r--r--modules/base/conf.go24
-rw-r--r--serve.go44
-rw-r--r--templates/user/delete.tmpl4
5 files changed, 46 insertions, 45 deletions
diff --git a/conf/app.ini b/conf/app.ini
index 916079ed..1a96ebea 100644
--- a/conf/app.ini
+++ b/conf/app.ini
@@ -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
diff --git a/gogs.go b/gogs.go
index 93b7231b..7ac699cc 100644
--- a/gogs.go
+++ b/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"
diff --git a/modules/base/conf.go b/modules/base/conf.go
index 90b35476..1661681e 100644
--- a/modules/base/conf.go
+++ b/modules/base/conf.go
@@ -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)
diff --git a/serve.go b/serve.go
index acdcb877..a4d5a727 100644
--- a/serve.go
+++ b/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())
diff --git a/templates/user/delete.tmpl b/templates/user/delete.tmpl
index a0f20fa2..17c9ea89 100644
--- a/templates/user/delete.tmpl
+++ b/templates/user/delete.tmpl
@@ -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>