mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	fix: ignore email notifications if user is not active. (#820)
This commit is contained in:
		@@ -9,7 +9,7 @@
 | 
			
		||||
  salt: salt
 | 
			
		||||
  is_admin: true
 | 
			
		||||
  avatar: avatar1
 | 
			
		||||
  avatar_email: user2@example.com
 | 
			
		||||
  avatar_email: user1@example.com
 | 
			
		||||
  num_repos: 0
 | 
			
		||||
 | 
			
		||||
-
 | 
			
		||||
@@ -69,6 +69,7 @@
 | 
			
		||||
  avatar_email: user5@example.com
 | 
			
		||||
  num_repos: 1
 | 
			
		||||
  allow_create_organization: false
 | 
			
		||||
  is_active: true
 | 
			
		||||
 | 
			
		||||
-
 | 
			
		||||
  id: 6
 | 
			
		||||
@@ -99,3 +100,35 @@
 | 
			
		||||
  avatar_email: user7@example.com
 | 
			
		||||
  num_repos: 0
 | 
			
		||||
  num_members: 1
 | 
			
		||||
 | 
			
		||||
-
 | 
			
		||||
  id: 8
 | 
			
		||||
  lower_name: user8
 | 
			
		||||
  name: user8
 | 
			
		||||
  full_name: User Eight
 | 
			
		||||
  email: user8@example.com
 | 
			
		||||
  passwd: password
 | 
			
		||||
  type: 0 # user
 | 
			
		||||
  salt: salt
 | 
			
		||||
  is_admin: false
 | 
			
		||||
  avatar: avatar8
 | 
			
		||||
  avatar_email: user8@example.com
 | 
			
		||||
  num_repos: 0
 | 
			
		||||
  num_members: 1
 | 
			
		||||
  is_active: true
 | 
			
		||||
 | 
			
		||||
-
 | 
			
		||||
  id: 9
 | 
			
		||||
  lower_name: user9
 | 
			
		||||
  name: user9
 | 
			
		||||
  full_name: User Nine
 | 
			
		||||
  email: user9@example.com
 | 
			
		||||
  passwd: password
 | 
			
		||||
  type: 0 # user
 | 
			
		||||
  salt: salt
 | 
			
		||||
  is_admin: false
 | 
			
		||||
  avatar: avatar9
 | 
			
		||||
  avatar_email: user9@example.com
 | 
			
		||||
  num_repos: 0
 | 
			
		||||
  num_members: 1
 | 
			
		||||
  is_active: false
 | 
			
		||||
 
 | 
			
		||||
@@ -537,6 +537,12 @@ func (u *User) ShortName(length int) string {
 | 
			
		||||
	return base.EllipsisString(u.Name, length)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsMailable checks if a user is elegible
 | 
			
		||||
// to receive emails.
 | 
			
		||||
func (u *User) IsMailable() bool {
 | 
			
		||||
	return u.IsActive
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// IsUserExist checks if given user name exist,
 | 
			
		||||
// the user name should be noncased unique.
 | 
			
		||||
// If uid is presented, then check will rule out that one,
 | 
			
		||||
@@ -1047,8 +1053,10 @@ func GetUserEmailsByNames(names []string) []string {
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
		if u.IsMailable() {
 | 
			
		||||
			mails = append(mails, u.Email)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return mails
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								models/user_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								models/user_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
// Copyright 2017 The Gitea Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a MIT-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"testing"
 | 
			
		||||
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestGetUserEmailsByNames(t *testing.T) {
 | 
			
		||||
	assert.NoError(t, PrepareTestDatabase())
 | 
			
		||||
 | 
			
		||||
	// ignore none active user email
 | 
			
		||||
	assert.Equal(t, []string{"user8@example.com"}, GetUserEmailsByNames([]string{"user8", "user9"}))
 | 
			
		||||
	assert.Equal(t, []string{"user8@example.com", "user5@example.com"}, GetUserEmailsByNames([]string{"user8", "user5"}))
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user