mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	fix: ignore email notifications if user is not active. (#820)
This commit is contained in:
		@@ -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,7 +1053,9 @@ func GetUserEmailsByNames(names []string) []string {
 | 
				
			|||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		mails = append(mails, u.Email)
 | 
							if u.IsMailable() {
 | 
				
			||||||
 | 
								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"}))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user