Browse Source

Fix create user can use user email which is used (#4016)

Unknwon 8 years ago
parent
commit
207960b459
3 changed files with 11 additions and 3 deletions
  1. 1 1
      gogs.go
  2. 9 1
      models/user_mail.go
  3. 1 1
      templates/.VERSION

+ 1 - 1
gogs.go

@@ -16,7 +16,7 @@ import (
 	"github.com/gogits/gogs/modules/setting"
 )
 
-const APP_VER = "0.9.125.0128"
+const APP_VER = "0.9.126.0129"
 
 func init() {
 	setting.AppVer = APP_VER

+ 9 - 1
models/user_mail.go

@@ -58,7 +58,15 @@ func isEmailUsed(e Engine, email string) (bool, error) {
 		return true, nil
 	}
 
-	return e.Get(&EmailAddress{Email: email})
+	has, err := e.Get(&EmailAddress{Email: email})
+	if err != nil {
+		return false, err
+	} else if has {
+		return true, nil
+	}
+
+	// We need to check primary email of users as well.
+	return e.Where("type=?", USER_TYPE_INDIVIDUAL).And("email=?", email).Get(new(User))
 }
 
 // IsEmailUsed returns true if the email has been used.

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.9.125.0128
+0.9.126.0129