mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08: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:
		@@ -7,6 +7,7 @@ package context
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models/auth"
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
@@ -41,6 +42,10 @@ func Toggle(options *ToggleOptions) func(ctx *Context) {
 | 
			
		||||
 | 
			
		||||
			if ctx.Doer.MustChangePassword {
 | 
			
		||||
				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["ChangePasscodeLink"] = setting.AppSubURL + "/user/change_password"
 | 
			
		||||
					if ctx.Req.URL.Path != "/user/events" {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user