diff options
author | Jack Hay <jack@allspice.io> | 2023-09-01 12:15:39 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-01 16:15:39 +0000 |
commit | 9881b8a4e24bc81b1acd80b51c5c2541b063149e (patch) | |
tree | 9bf4c5ce0c0d3f11880e6999ad3c2ced798f85eb | |
parent | 04771b5ff79152a47aecce4b2b445daa4a96da33 (diff) | |
download | gitea-9881b8a4e24bc81b1acd80b51c5c2541b063149e.tar.gz gitea-9881b8a4e24bc81b1acd80b51c5c2541b063149e.zip |
Add more descriptive error on forgot password page (#26848)
## Changes
- Forces flashed error to render immediately when forgot password code
is incorrect or has expired.
- Adds a link back to the `forgot_password` page so that the user can
restart the process (in the event that their link has expired)
-rw-r--r-- | options/locale/locale_en-US.ini | 1 | ||||
-rw-r--r-- | routers/web/auth/password.go | 7 | ||||
-rw-r--r-- | templates/user/auth/reset_passwd.tmpl | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 401692388e..66f67d4896 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -379,6 +379,7 @@ email_not_associate = The email address is not associated with any account. send_reset_mail = Send Account Recovery Email reset_password = Account Recovery invalid_code = Your confirmation code is invalid or has expired. +invalid_code_forgot_password = Your confirmation code is invalid or has expired. Click <a href="%s">here</a> to start a new session. invalid_password = Your password does not match the password that was used to create the account. reset_password_helper = Recover Account reset_password_wrong_user = You are signed in as %s, but the account recovery link is meant for %s diff --git a/routers/web/auth/password.go b/routers/web/auth/password.go index b34a1d8fce..1432338e70 100644 --- a/routers/web/auth/password.go +++ b/routers/web/auth/password.go @@ -5,6 +5,7 @@ package auth import ( "errors" + "fmt" "net/http" "code.gitea.io/gitea/models/auth" @@ -108,14 +109,14 @@ func commonResetPassword(ctx *context.Context) (*user_model.User, *auth.TwoFacto } if len(code) == 0 { - ctx.Flash.Error(ctx.Tr("auth.invalid_code")) + ctx.Flash.Error(ctx.Tr("auth.invalid_code_forgot_password", fmt.Sprintf("%s/user/forgot_password", setting.AppSubURL)), true) return nil, nil } // Fail early, don't frustrate the user u := user_model.VerifyUserActiveCode(code) if u == nil { - ctx.Flash.Error(ctx.Tr("auth.invalid_code")) + ctx.Flash.Error(ctx.Tr("auth.invalid_code_forgot_password", fmt.Sprintf("%s/user/forgot_password", setting.AppSubURL)), true) return nil, nil } @@ -134,7 +135,7 @@ func commonResetPassword(ctx *context.Context) (*user_model.User, *auth.TwoFacto ctx.Data["user_email"] = u.Email if nil != ctx.Doer && u.ID != ctx.Doer.ID { - ctx.Flash.Error(ctx.Tr("auth.reset_password_wrong_user", ctx.Doer.Email, u.Email)) + ctx.Flash.Error(ctx.Tr("auth.reset_password_wrong_user", ctx.Doer.Email, u.Email), true) return nil, nil } diff --git a/templates/user/auth/reset_passwd.tmpl b/templates/user/auth/reset_passwd.tmpl index ac6eb35f1d..d7734bc57f 100644 --- a/templates/user/auth/reset_passwd.tmpl +++ b/templates/user/auth/reset_passwd.tmpl @@ -57,7 +57,7 @@ {{end}} </div> {{else}} - <p class="center">{{.locale.Tr "auth.invalid_code"}}</p> + <p class="center">{{.locale.Tr "auth.invalid_code_forgot_password" (printf "%s/user/forgot_password" AppSubUrl) | Str2html}}</p> {{end}} </div> </form> |