Factor out function to get the current user
The same logic was duplicated in three places. Factor it out so that we can add further fallbacks in a single place.
This commit is contained in:
parent
b35d7eee31
commit
0d38794c7f
@ -24,6 +24,7 @@ import (
|
|||||||
"github.com/gogits/gogs/modules/bindata"
|
"github.com/gogits/gogs/modules/bindata"
|
||||||
"github.com/gogits/gogs/modules/log"
|
"github.com/gogits/gogs/modules/log"
|
||||||
// "github.com/gogits/gogs/modules/ssh"
|
// "github.com/gogits/gogs/modules/ssh"
|
||||||
|
"github.com/gogits/gogs/modules/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Scheme string
|
type Scheme string
|
||||||
@ -309,10 +310,7 @@ func NewConfigContext() {
|
|||||||
}[Cfg.Section("time").Key("FORMAT").MustString("RFC1123")]
|
}[Cfg.Section("time").Key("FORMAT").MustString("RFC1123")]
|
||||||
|
|
||||||
RunUser = Cfg.Section("").Key("RUN_USER").String()
|
RunUser = Cfg.Section("").Key("RUN_USER").String()
|
||||||
curUser := os.Getenv("USER")
|
curUser := user.CurrentUsername()
|
||||||
if len(curUser) == 0 {
|
|
||||||
curUser = os.Getenv("USERNAME")
|
|
||||||
}
|
|
||||||
// Does not check run user when the install lock is off.
|
// Does not check run user when the install lock is off.
|
||||||
if InstallLock && RunUser != curUser {
|
if InstallLock && RunUser != curUser {
|
||||||
log.Fatal(4, "Expect user(%s) but current user is: %s", RunUser, curUser)
|
log.Fatal(4, "Expect user(%s) but current user is: %s", RunUser, curUser)
|
||||||
|
18
modules/user/user.go
Normal file
18
modules/user/user.go
Normal file
@ -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")
|
||||||
|
}
|
@ -26,6 +26,7 @@ import (
|
|||||||
"github.com/gogits/gogs/modules/middleware"
|
"github.com/gogits/gogs/modules/middleware"
|
||||||
"github.com/gogits/gogs/modules/setting"
|
"github.com/gogits/gogs/modules/setting"
|
||||||
"github.com/gogits/gogs/modules/social"
|
"github.com/gogits/gogs/modules/social"
|
||||||
|
"github.com/gogits/gogs/modules/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -111,10 +112,7 @@ func Install(ctx *middleware.Context) {
|
|||||||
// Note(unknwon): it's hard for Windows users change a running user,
|
// Note(unknwon): it's hard for Windows users change a running user,
|
||||||
// so just use current one if config says default.
|
// so just use current one if config says default.
|
||||||
if setting.IsWindows && setting.RunUser == "git" {
|
if setting.IsWindows && setting.RunUser == "git" {
|
||||||
form.RunUser = os.Getenv("USER")
|
form.RunUser = user.CurrentUsername()
|
||||||
if len(form.RunUser) == 0 {
|
|
||||||
form.RunUser = os.Getenv("USERNAME")
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
form.RunUser = setting.RunUser
|
form.RunUser = setting.RunUser
|
||||||
}
|
}
|
||||||
@ -201,10 +199,7 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check run user.
|
// Check run user.
|
||||||
curUser := os.Getenv("USER")
|
curUser := user.CurrentUsername()
|
||||||
if len(curUser) == 0 {
|
|
||||||
curUser = os.Getenv("USERNAME")
|
|
||||||
}
|
|
||||||
if form.RunUser != curUser {
|
if form.RunUser != curUser {
|
||||||
ctx.Data["Err_RunUser"] = true
|
ctx.Data["Err_RunUser"] = true
|
||||||
ctx.RenderWithErr(ctx.Tr("install.run_user_not_match", form.RunUser, curUser), INSTALL, &form)
|
ctx.RenderWithErr(ctx.Tr("install.run_user_not_match", form.RunUser, curUser), INSTALL, &form)
|
||||||
|
Loading…
Reference in New Issue
Block a user