]> source.dussan.org Git - gitea.git/commitdiff
Factor out function to get the current user
authorPaolo Borelli <pborelli@gnome.org>
Fri, 31 Jul 2015 06:50:11 +0000 (08:50 +0200)
committerPaolo Borelli <pborelli@gnome.org>
Sat, 15 Aug 2015 08:05:12 +0000 (10:05 +0200)
The same logic was duplicated in three places. Factor it
out so that we can add further fallbacks in a single place.

modules/setting/setting.go
modules/user/user.go [new file with mode: 0644]
routers/install.go

index acd3aae689760570ea1780610110a909484928be..79e47c89015d5a31a273f18457a53f928f4bf89d 100644 (file)
@@ -24,6 +24,7 @@ import (
        "github.com/gogits/gogs/modules/bindata"
        "github.com/gogits/gogs/modules/log"
        // "github.com/gogits/gogs/modules/ssh"
+       "github.com/gogits/gogs/modules/user"
 )
 
 type Scheme string
@@ -309,10 +310,7 @@ func NewConfigContext() {
        }[Cfg.Section("time").Key("FORMAT").MustString("RFC1123")]
 
        RunUser = Cfg.Section("").Key("RUN_USER").String()
-       curUser := os.Getenv("USER")
-       if len(curUser) == 0 {
-               curUser = os.Getenv("USERNAME")
-       }
+       curUser := user.CurrentUsername()
        // Does not check run user when the install lock is off.
        if InstallLock && RunUser != curUser {
                log.Fatal(4, "Expect user(%s) but current user is: %s", RunUser, curUser)
diff --git a/modules/user/user.go b/modules/user/user.go
new file mode 100644 (file)
index 0000000..8a2557f
--- /dev/null
@@ -0,0 +1,18 @@
+// Copyright 2014 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package user
+
+import (
+       "os"
+)
+
+func CurrentUsername() string {
+       curUserName := os.Getenv("USER")
+       if len(curUserName) > 0 {
+               return curUserName
+       }
+
+       return os.Getenv("USERNAME")
+}
index 3d3e899763381a6e580c9065d23b4d780efe6aea..8fed105fc2a2de5d7c270e38bc402fad7d15d191 100644 (file)
@@ -26,6 +26,7 @@ import (
        "github.com/gogits/gogs/modules/middleware"
        "github.com/gogits/gogs/modules/setting"
        "github.com/gogits/gogs/modules/social"
+       "github.com/gogits/gogs/modules/user"
 )
 
 const (
@@ -111,10 +112,7 @@ func Install(ctx *middleware.Context) {
        // Note(unknwon): it's hard for Windows users change a running user,
        //      so just use current one if config says default.
        if setting.IsWindows && setting.RunUser == "git" {
-               form.RunUser = os.Getenv("USER")
-               if len(form.RunUser) == 0 {
-                       form.RunUser = os.Getenv("USERNAME")
-               }
+               form.RunUser = user.CurrentUsername()
        } else {
                form.RunUser = setting.RunUser
        }
@@ -201,10 +199,7 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
        }
 
        // Check run user.
-       curUser := os.Getenv("USER")
-       if len(curUser) == 0 {
-               curUser = os.Getenv("USERNAME")
-       }
+       curUser := user.CurrentUsername()
        if form.RunUser != curUser {
                ctx.Data["Err_RunUser"] = true
                ctx.RenderWithErr(ctx.Tr("install.run_user_not_match", form.RunUser, curUser), INSTALL, &form)