Unknwon 10 years ago
parent
commit
8ea7ba3afa
2 changed files with 14 additions and 3 deletions
  1. 12 1
      models/org.go
  2. 2 2
      models/user.go

+ 12 - 1
models/org.go

@@ -77,6 +77,17 @@ func (org *User) RemoveMember(uid int64) error {
 	return RemoveOrgUser(org.Id, uid)
 }
 
+// IsOrgEmailUsed returns true if the e-mail has been used in organization account.
+func IsOrgEmailUsed(email string) (bool, error) {
+	if len(email) == 0 {
+		return false, nil
+	}
+	return x.Get(&User{
+		Email: email,
+		Type:  ORGANIZATION,
+	})
+}
+
 // CreateOrganization creates record of a new organization.
 func CreateOrganization(org, owner *User) (*User, error) {
 	if !IsLegalName(org.Name) {
@@ -90,7 +101,7 @@ func CreateOrganization(org, owner *User) (*User, error) {
 		return nil, ErrUserAlreadyExist
 	}
 
-	isExist, err = IsEmailUsed(org.Email)
+	isExist, err = IsOrgEmailUsed(org.Email)
 	if err != nil {
 		return nil, err
 	} else if isExist {

+ 2 - 2
models/user.go

@@ -53,12 +53,12 @@ type User struct {
 	LowerName   string `xorm:"UNIQUE NOT NULL"`
 	Name        string `xorm:"UNIQUE NOT NULL"`
 	FullName    string
-	Email       string `xorm:"UNIQUE NOT NULL"`
+	Email       string `xorm:"UNIQUE(s) NOT NULL"`
 	Passwd      string `xorm:"NOT NULL"`
 	LoginType   LoginType
 	LoginSource int64 `xorm:"NOT NULL DEFAULT 0"`
 	LoginName   string
-	Type        UserType
+	Type        UserType      `xorm:"UNIQUE(s)"`
 	Orgs        []*User       `xorm:"-"`
 	Repos       []*Repository `xorm:"-"`
 	Location    string