aboutsummaryrefslogtreecommitdiff
path: root/internal/route/user/setting.go
diff options
context:
space:
mode:
authorAchilleas Koutsou <achilleas.k@gmail.com>2020-01-22 19:05:31 +0100
committerᴜɴᴋɴᴡᴏɴ <u@gogs.io>2020-01-23 02:05:31 +0800
commit873966aa869f6934619f4643d6f672155d8b19dd (patch)
tree298a55752dcd3e4d51d7e1ebf92e354416735fd6 /internal/route/user/setting.go
parent6bd08a0b6f068519e207934cf4086b4d09041bd9 (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.go7
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
}