mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Small fixes to multiple_emails feature
This commit is contained in:
		@@ -100,7 +100,7 @@ type User struct {
 | 
			
		||||
// primary email address, but is not obligatory
 | 
			
		||||
type EmailAddress struct {
 | 
			
		||||
	Id          int64
 | 
			
		||||
	OwnerId     int64  `xorm:"INDEX NOT NULL"`
 | 
			
		||||
	Uid         int64  `xorm:"INDEX NOT NULL"`
 | 
			
		||||
	Email       string `xorm:"UNIQUE NOT NULL"`
 | 
			
		||||
	IsActivated bool
 | 
			
		||||
	IsPrimary   bool `xorm:"-"`
 | 
			
		||||
@@ -261,8 +261,8 @@ func IsEmailUsed(email string) (bool, error) {
 | 
			
		||||
	if len(email) == 0 {
 | 
			
		||||
		return false, nil
 | 
			
		||||
	}
 | 
			
		||||
	if used, err := x.Get(&EmailAddress{Email: email}); used || err != nil {
 | 
			
		||||
		return used, err
 | 
			
		||||
	if has, err := x.Get(&EmailAddress{Email: email}); has || err != nil {
 | 
			
		||||
		return has, err
 | 
			
		||||
	}
 | 
			
		||||
	return x.Get(&User{Email: email})
 | 
			
		||||
}
 | 
			
		||||
@@ -524,7 +524,7 @@ func DeleteUser(u *User) error {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	// Delete all alternative email addresses
 | 
			
		||||
	if _, err = x.Delete(&EmailAddress{OwnerId: u.Id}); err != nil {
 | 
			
		||||
	if _, err = x.Delete(&EmailAddress{Uid: u.Id}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	// Delete all SSH keys.
 | 
			
		||||
@@ -551,7 +551,7 @@ func DeleteUser(u *User) error {
 | 
			
		||||
func DeleteInactivateUsers() error {
 | 
			
		||||
	_, err := x.Where("is_active=?", false).Delete(new(User))
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		_, err = x.Delete(&EmailAddress{IsActivated: false})
 | 
			
		||||
		_, err = x.Where("is_activated=?", false).Delete(new(EmailAddress))
 | 
			
		||||
	}
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
@@ -639,11 +639,11 @@ func GetEmailAddresses(uid int64) ([]*EmailAddress, error) {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	primary_email_found := false
 | 
			
		||||
	isPrimaryFound := false
 | 
			
		||||
 | 
			
		||||
	for _, email := range emails {
 | 
			
		||||
		if email.Email == u.Email {
 | 
			
		||||
			primary_email_found = true
 | 
			
		||||
			isPrimaryFound = true
 | 
			
		||||
			email.IsPrimary = true
 | 
			
		||||
		} else {
 | 
			
		||||
			email.IsPrimary = false
 | 
			
		||||
@@ -652,7 +652,7 @@ func GetEmailAddresses(uid int64) ([]*EmailAddress, error) {
 | 
			
		||||
 | 
			
		||||
	// We alway want the primary email address displayed, even if it's not in
 | 
			
		||||
	// the emailaddress table (yet)
 | 
			
		||||
	if !primary_email_found {
 | 
			
		||||
	if !isPrimaryFound {
 | 
			
		||||
		emails = append(emails, &EmailAddress{Email: u.Email, IsActivated: true, IsPrimary: true})
 | 
			
		||||
	}
 | 
			
		||||
	return emails, nil
 | 
			
		||||
@@ -676,7 +676,7 @@ func (email *EmailAddress) Activate() error {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if user, err := GetUserById(email.OwnerId); err != nil {
 | 
			
		||||
	if user, err := GetUserById(email.Uid); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	} else {
 | 
			
		||||
		user.Rands = GetUserSalt()
 | 
			
		||||
@@ -712,7 +712,7 @@ func MakeEmailPrimary(email *EmailAddress) error {
 | 
			
		||||
		return ErrEmailNotActivated
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	user := &User{Id: email.OwnerId}
 | 
			
		||||
	user := &User{Id: email.Uid}
 | 
			
		||||
	has, err = x.Get(user)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
@@ -726,7 +726,7 @@ func MakeEmailPrimary(email *EmailAddress) error {
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	} else if !has {
 | 
			
		||||
		former_primary_email.OwnerId = user.Id
 | 
			
		||||
		former_primary_email.Uid = user.Id
 | 
			
		||||
		former_primary_email.IsActivated = user.IsActive
 | 
			
		||||
		x.Insert(former_primary_email)
 | 
			
		||||
	}
 | 
			
		||||
@@ -799,7 +799,7 @@ func GetUserByEmail(email string) (*User, error) {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if has {
 | 
			
		||||
		return GetUserById(emailAddress.OwnerId)
 | 
			
		||||
		return GetUserById(emailAddress.Uid)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return nil, ErrUserNotExist
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user