fix: ignore email notifications if user is not active. (#820)
This commit is contained in:
		
							parent
							
								
									2db0ffe69e
								
							
						
					
					
						commit
						d7d094bd8a
					
				| @ -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,7 +1053,9 @@ func GetUserEmailsByNames(names []string) []string { | ||||
| 		if err != nil { | ||||
| 			continue | ||||
| 		} | ||||
| 		mails = append(mails, u.Email) | ||||
| 		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"})) | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user