Browse Source

Merge branch 'bug/fix-email-update' of dantehemerson/gitote into master

Yoginth 7 years ago
parent
commit
2adc51f469
1 changed files with 13 additions and 3 deletions
  1. 13 3
      routes/user/setting.go

+ 13 - 3
routes/user/setting.go

@@ -82,8 +82,6 @@ func SettingsPost(c *context.Context, f form.UpdateProfile) {
 				switch {
 				case models.IsErrUserAlreadyExist(err):
 					msg = c.Tr("form.username_been_taken")
-				case models.IsErrEmailAlreadyUsed(err):
-					msg = c.Tr("form.email_been_used")
 				case models.IsErrNameReserved(err):
 					msg = c.Tr("form.name_reserved")
 				case models.IsErrNamePatternNotAllowed(err):
@@ -105,10 +103,22 @@ func SettingsPost(c *context.Context, f form.UpdateProfile) {
 		c.User.LowerName = strings.ToLower(f.Name)
 	}
 
+	var email string = strings.ToLower(f.Email)
+	if c.User.Email != email {
+		if used, err := models.IsEmailUsed(email); used {
+			c.FormErr("Email")
+			c.RenderWithErr(c.Tr("form.email_been_used"), SETTINGS_PROFILE, &f)
+			return
+		} else if err != nil {
+			c.ServerError("ChangeUserName", err)
+			return
+		}
+		c.User.Email = email
+	}
+
 	c.User.FullName = f.FullName
 	c.User.Company = f.Company
 	c.User.Description = f.Description
-	c.User.Email = f.Email
 	c.User.Website = f.Website
 	c.User.Location = f.Location
 	c.User.Status = f.Status