fix: ignore email notifications if user is not active. (#820)
This commit is contained in:
parent
2db0ffe69e
commit
d7d094bd8a
3 changed files with 62 additions and 2 deletions
|
@ -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 a new issue