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 |   salt: salt | ||||||
|   is_admin: true |   is_admin: true | ||||||
|   avatar: avatar1 |   avatar: avatar1 | ||||||
|   avatar_email: user2@example.com |   avatar_email: user1@example.com | ||||||
|   num_repos: 0 |   num_repos: 0 | ||||||
| 
 | 
 | ||||||
| - | - | ||||||
| @ -69,6 +69,7 @@ | |||||||
|   avatar_email: user5@example.com |   avatar_email: user5@example.com | ||||||
|   num_repos: 1 |   num_repos: 1 | ||||||
|   allow_create_organization: false |   allow_create_organization: false | ||||||
|  |   is_active: true | ||||||
| 
 | 
 | ||||||
| - | - | ||||||
|   id: 6 |   id: 6 | ||||||
| @ -99,3 +100,35 @@ | |||||||
|   avatar_email: user7@example.com |   avatar_email: user7@example.com | ||||||
|   num_repos: 0 |   num_repos: 0 | ||||||
|   num_members: 1 |   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) | 	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,
 | // IsUserExist checks if given user name exist,
 | ||||||
| // the user name should be noncased unique.
 | // the user name should be noncased unique.
 | ||||||
| // If uid is presented, then check will rule out that one,
 | // If uid is presented, then check will rule out that one,
 | ||||||
| @ -1047,8 +1053,10 @@ func GetUserEmailsByNames(names []string) []string { | |||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
|  | 		if u.IsMailable() { | ||||||
| 			mails = append(mails, u.Email) | 			mails = append(mails, u.Email) | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
| 	return mails | 	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