Check primary email address fields on CreateUser (#556)

* Check primary email address fields on CreateUser

As this check wasn't available, uid=1 (and possibly guests too, if registration is open) is able to register new users with existing email addresses. This leads to numerous 500 errors.

* Update user.go

* Lower the email first. Then check
This commit is contained in:
Berk Demirkır 2017-01-05 02:52:20 +02:00 committed by Lunny Xiao
parent 1207bda94b
commit bdad3b259a

View File

@ -600,6 +600,15 @@ func CreateUser(u *User) (err error) {
} }
u.Email = strings.ToLower(u.Email) u.Email = strings.ToLower(u.Email)
has, err := x.
Where("email=?", u.Email).
Get(new(User))
if err != nil {
return err
} else if has {
return ErrEmailAlreadyUsed{u.Email}
}
isExist, err = IsEmailUsed(u.Email) isExist, err = IsEmailUsed(u.Email)
if err != nil { if err != nil {
return err return err