diff options
author | Achilleas Koutsou <achilleas.k@gmail.com> | 2020-01-22 19:05:31 +0100 |
---|---|---|
committer | ᴜɴᴋɴᴡᴏɴ <u@gogs.io> | 2020-01-23 02:05:31 +0800 |
commit | 873966aa869f6934619f4643d6f672155d8b19dd (patch) | |
tree | 298a55752dcd3e4d51d7e1ebf92e354416735fd6 /internal/route/user/setting.go | |
parent | 6bd08a0b6f068519e207934cf4086b4d09041bd9 (diff) |
user/setting: check for IsErrEmailAlreadyUsed when updating user (#5900)
Check for email collisions when updating the entire user information,
not when the username is being changed.
Fixes #5899
Diffstat (limited to 'internal/route/user/setting.go')
-rw-r--r-- | internal/route/user/setting.go | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/internal/route/user/setting.go b/internal/route/user/setting.go index 6b55966f..7c1c4696 100644 --- a/internal/route/user/setting.go +++ b/internal/route/user/setting.go @@ -75,8 +75,6 @@ func SettingsPost(c *context.Context, f form.UpdateProfile) { switch { case db.IsErrUserAlreadyExist(err): msg = c.Tr("form.username_been_taken") - case db.IsErrEmailAlreadyUsed(err): - msg = c.Tr("form.email_been_used") case db.IsErrNameReserved(err): msg = c.Tr("form.name_reserved") case db.IsErrNamePatternNotAllowed(err): @@ -103,6 +101,11 @@ func SettingsPost(c *context.Context, f form.UpdateProfile) { c.User.Website = f.Website c.User.Location = f.Location if err := db.UpdateUser(c.User); err != nil { + if db.IsErrEmailAlreadyUsed(err) { + msg := c.Tr("form.email_been_used") + c.RenderWithErr(msg, SETTINGS_PROFILE, &f) + return + } c.ServerError("UpdateUser", err) return } |