diff --git a/models/user_mail.go b/models/user_mail.go index 7244ec378..8bf74b81b 100755 --- a/models/user_mail.go +++ b/models/user_mail.go @@ -293,6 +293,16 @@ func MakeEmailPrimary(email *EmailAddress) error { } user.Email = email.Email + + has, err = sess.Where("id!=?", user.ID). + And("type=?", user.Type). + And("email=?", strings.ToLower(user.Email)). + Get(new(User)) + if err != nil { + return err + } else if has { + return ErrEmailAlreadyUsed{user.Email} + } if _, err = sess.ID(user.ID).Cols("email").Update(user); err != nil { return err }