summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--models/org.go13
-rw-r--r--models/user.go4
2 files changed, 14 insertions, 3 deletions
diff --git a/models/org.go b/models/org.go
index 3232bf2ac1..90e5a1f3a0 100644
--- a/models/org.go
+++ b/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 {
diff --git a/models/user.go b/models/user.go
index c68ae31067..b0cc2ae156 100644
--- a/models/user.go
+++ b/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