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
|
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"}))
|
||||||
|
}
|
Reference in a new issue