From 104a44748af423b715fd7a3f3f652a84cd6afc11 Mon Sep 17 00:00:00 2001 From: liuzx Date: Thu, 24 Nov 2022 18:40:14 +0800 Subject: [PATCH] fix-2775 --- models/user_mail.go | 2 +- modules/auth/user_form.go | 2 +- routers/routes/routes.go | 2 +- routers/user/auth.go | 13 ++++++++++--- templates/user/auth/activate.tmpl | 2 +- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/models/user_mail.go b/models/user_mail.go index d0547d589..8388da068 100755 --- a/models/user_mail.go +++ b/models/user_mail.go @@ -234,7 +234,7 @@ func (email *EmailAddress) updateEmailAddress(e Engine, newEmailAddress string) if _, err := e.ID(email.ID).Cols("email").Update(email); err != nil { return err } - return updateUserCols(e, user, "email", "avartar_email") + return updateUserCols(e, user, "email", "avatar_email") } // DeleteEmailAddress deletes an email address of given user. diff --git a/modules/auth/user_form.go b/modules/auth/user_form.go index 13dbd8155..521585264 100755 --- a/modules/auth/user_form.go +++ b/modules/auth/user_form.go @@ -89,7 +89,7 @@ type RegisterForm struct { } type UpdateEmailForm struct { - NewEmail string `binding:"Required;NewEmail;MaxSize(254)"` + NewEmail string `binding:"Required;MaxSize(254)"` } // Validate valideates the fields diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 4f7cacbf3..a988e4849 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -518,7 +518,7 @@ func RegisterRoutes(m *macaron.Macaron) { // r.Get("/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds) m.Any("/activate", user.Activate, reqSignIn) m.Any("/activate_email", user.ActivateEmail) - m.Post("/update_email", reqSignIn, bindIgnErr(auth.UpdateEmailForm{}), user.UpdateEmailPost) + m.Post("/update_email", bindIgnErr(auth.UpdateEmailForm{}), user.UpdateEmailPost) m.Get("/avatar/:username/:size", user.Avatar) m.Get("/email2user", user.Email2User) m.Get("/recover_account", user.ResetPasswd) diff --git a/routers/user/auth.go b/routers/user/auth.go index 022913e25..bf858706d 100755 --- a/routers/user/auth.go +++ b/routers/user/auth.go @@ -1415,9 +1415,13 @@ func SignUpPost(ctx *context.Context, cpt *captcha.Captcha, form auth.RegisterFo //update user emailAddress func UpdateEmailPost(ctx *context.Context, form auth.UpdateEmailForm) { - newEmailAddress := form.NewEmail - if used, err := models.IsEmailUsed(newEmailAddress); used { - ctx.ServerError(ctx.Tr("form.email_been_used"), err) + newEmailAddress := ctx.Query("NewEmail") + if newEmailAddress == "" { + log.Error("please input the newEmail") + return + } + if used, _ := models.IsEmailUsed(newEmailAddress); used { + ctx.RenderWithErr(ctx.Tr("form.email_been_used"), TplActivate, &form) return } user := ctx.User @@ -1431,7 +1435,10 @@ func UpdateEmailPost(ctx *context.Context, form auth.UpdateEmailForm) { ctx.ServerError("UpdateEmailAddress failed", err) return } + ctx.Data["Email"] = newEmailAddress + ctx.User.Email = newEmailAddress Activate(ctx) + } // Activate render activate user page diff --git a/templates/user/auth/activate.tmpl b/templates/user/auth/activate.tmpl index db64f7911..b8436e994 100644 --- a/templates/user/auth/activate.tmpl +++ b/templates/user/auth/activate.tmpl @@ -15,7 +15,7 @@ {{else if .ResendLimited}}

{{.i18n.Tr "auth.resent_limit_prompt"}}

{{else}} -

{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .SignedUser.Email .ActiveCodeLives | Str2html}}

+

{{.i18n.Tr "auth.confirmation_mail_sent_prompt" .Email .ActiveCodeLives | Str2html}}

{{end}} {{else}} {{if .IsSendRegisterMail}}