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…
Reference in New Issue
Block a user