mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 11:35:03 +01:00 
			
		
		
		
	Respond with a 401 on git push when password isn't changed yet (#20026)
If the user-agent starts with git and user must change password but hasn't return a 401 with the message. It must be a 401, git doesn't seem to show the contents of the error message when we return a 403 Fixes #19090
This commit is contained in:
		
							parent
							
								
									62104b4896
								
							
						
					
					
						commit
						e91229eefb
					
				| @ -7,6 +7,7 @@ package context | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"net/http" | 	"net/http" | ||||||
|  | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"code.gitea.io/gitea/models/auth" | 	"code.gitea.io/gitea/models/auth" | ||||||
| 	"code.gitea.io/gitea/modules/log" | 	"code.gitea.io/gitea/modules/log" | ||||||
| @ -41,6 +42,10 @@ func Toggle(options *ToggleOptions) func(ctx *Context) { | |||||||
| 
 | 
 | ||||||
| 			if ctx.Doer.MustChangePassword { | 			if ctx.Doer.MustChangePassword { | ||||||
| 				if ctx.Req.URL.Path != "/user/settings/change_password" { | 				if ctx.Req.URL.Path != "/user/settings/change_password" { | ||||||
|  | 					if strings.HasPrefix(ctx.Req.UserAgent(), "git") { | ||||||
|  | 						ctx.Error(http.StatusUnauthorized, ctx.Tr("auth.must_change_password")) | ||||||
|  | 						return | ||||||
|  | 					} | ||||||
| 					ctx.Data["Title"] = ctx.Tr("auth.must_change_password") | 					ctx.Data["Title"] = ctx.Tr("auth.must_change_password") | ||||||
| 					ctx.Data["ChangePasscodeLink"] = setting.AppSubURL + "/user/change_password" | 					ctx.Data["ChangePasscodeLink"] = setting.AppSubURL + "/user/change_password" | ||||||
| 					if ctx.Req.URL.Path != "/user/events" { | 					if ctx.Req.URL.Path != "/user/events" { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user