From 06d9d9e40794db9cbb00cdc893dea86d694389ad Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Fri, 31 Mar 2023 02:27:00 +0900 Subject: [PATCH] Fix incorrect/Improve error handle in edit user page (#23805) Changes: - `RenderWithErr` should render `tplUserEdit` not `tplUserNew` in edit page - If error occurred in `HandleUsernameChange` redirect to original edit page instead of user list page --- routers/web/admin/users.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/routers/web/admin/users.go b/routers/web/admin/users.go index 5fb2a3e5d6ecc..531f14d08627e 100644 --- a/routers/web/admin/users.go +++ b/routers/web/admin/users.go @@ -316,13 +316,13 @@ func EditUserPost(ctx *context.Context) { log.Error(err.Error()) errMsg = ctx.Tr("auth.password_pwned_err") } - ctx.RenderWithErr(errMsg, tplUserNew, &form) + ctx.RenderWithErr(errMsg, tplUserEdit, &form) return } if err := user_model.ValidateEmail(form.Email); err != nil { ctx.Data["Err_Email"] = true - ctx.RenderWithErr(ctx.Tr("form.email_error"), tplUserNew, &form) + ctx.RenderWithErr(ctx.Tr("form.email_error"), tplUserEdit, &form) return } @@ -338,7 +338,10 @@ func EditUserPost(ctx *context.Context) { if len(form.UserName) != 0 && u.Name != form.UserName { if err := user_setting.HandleUsernameChange(ctx, u, form.UserName); err != nil { - ctx.Redirect(setting.AppSubURL + "/admin/users") + if ctx.Written() { + return + } + ctx.RenderWithErr(ctx.Flash.ErrorMsg, tplUserEdit, &form) return } u.Name = form.UserName