mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	#3158 skip RUN_USER check on Windows
This commit is contained in:
		@@ -3,7 +3,7 @@ Gogs - Go Git Service [
 | 
			
		||||
 | 
			
		||||
##### Current tip version: 0.9.69 (see [Releases](https://github.com/gogits/gogs/releases) for binary versions)
 | 
			
		||||
##### Current tip version: 0.9.70 (see [Releases](https://github.com/gogits/gogs/releases) for binary versions)
 | 
			
		||||
 | 
			
		||||
| Web | UI  | Preview  |
 | 
			
		||||
|:-------------:|:-------:|:-------:|
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							@@ -17,7 +17,7 @@ import (
 | 
			
		||||
	"github.com/gogits/gogs/modules/setting"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const APP_VER = "0.9.69.0808"
 | 
			
		||||
const APP_VER = "0.9.70.0808"
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	runtime.GOMAXPROCS(runtime.NumCPU())
 | 
			
		||||
 
 | 
			
		||||
@@ -285,6 +285,19 @@ func forcePathSeparator(path string) {
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsRunUserMatchCurrentUser returns false if configured run user does not match
 | 
			
		||||
// actual user that runs the app. The first return value is the actual user name.
 | 
			
		||||
// This check is ignored under Windows since SSH remote login is not the main
 | 
			
		||||
// method to login on Windows.
 | 
			
		||||
func IsRunUserMatchCurrentUser(runUser string) (string, bool) {
 | 
			
		||||
	if IsWindows {
 | 
			
		||||
		return "", true
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	currentUser := user.CurrentUsername()
 | 
			
		||||
	return currentUser, runUser == currentUser
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewContext initializes configuration context.
 | 
			
		||||
// NOTE: do not print any log except error.
 | 
			
		||||
func NewContext() {
 | 
			
		||||
@@ -431,10 +444,12 @@ func NewContext() {
 | 
			
		||||
	}[Cfg.Section("time").Key("FORMAT").MustString("RFC1123")]
 | 
			
		||||
 | 
			
		||||
	RunUser = Cfg.Section("").Key("RUN_USER").String()
 | 
			
		||||
	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)
 | 
			
		||||
	if InstallLock {
 | 
			
		||||
		currentUser, match := IsRunUserMatchCurrentUser(RunUser)
 | 
			
		||||
		if !match {
 | 
			
		||||
			log.Fatal(4, "Expect user '%s' but current user is: %s", RunUser, currentUser)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Determine and create root git repository path.
 | 
			
		||||
 
 | 
			
		||||
@@ -252,11 +252,10 @@ func InstallPost(ctx *context.Context, form auth.InstallForm) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Check run user.
 | 
			
		||||
	curUser := user.CurrentUsername()
 | 
			
		||||
	if form.RunUser != curUser {
 | 
			
		||||
	currentUser, match := setting.IsRunUserMatchCurrentUser(form.RunUser)
 | 
			
		||||
	if !match {
 | 
			
		||||
		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, currentUser), INSTALL, &form)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
0.9.69.0808
 | 
			
		||||
0.9.70.0808
 | 
			
		||||
		Reference in New Issue
	
	Block a user