roles: don't include inactive members emails (#42428)
This commit is contained in:
parent
4ef65f9947
commit
248b0c2801
|
@ -7,6 +7,8 @@ from utilities import create_temporary_pub, clean_temporary_pub
|
|||
from wcs.qommon.storage import StorableObject
|
||||
from wcs.roles import Role, get_user_roles
|
||||
|
||||
from quixote import get_publisher
|
||||
|
||||
|
||||
def setup_module(module):
|
||||
pub = create_temporary_pub()
|
||||
|
@ -52,3 +54,26 @@ def test_get_user_roles():
|
|||
Role(name='é1').store()
|
||||
Role(name='a1').store()
|
||||
assert [x[1] for x in get_user_roles()] == ['a1', 'é1', 'f1']
|
||||
|
||||
|
||||
def test_get_emails():
|
||||
User = get_publisher().user_class
|
||||
User.wipe()
|
||||
Role.wipe()
|
||||
|
||||
role = Role(name='role')
|
||||
role.emails_to_members = True
|
||||
role.store()
|
||||
|
||||
users = []
|
||||
for i in range(2):
|
||||
user = User(name='John Doe %s' % i)
|
||||
user.email = 'john.doe.%s@example.com' % i
|
||||
user.add_roles([role.id])
|
||||
user.store()
|
||||
users.append(user)
|
||||
|
||||
assert len(set(role.get_emails())) == 2
|
||||
users[-1].is_active = False
|
||||
users[-1].store()
|
||||
assert len(set(role.get_emails())) == 1
|
||||
|
|
|
@ -72,7 +72,7 @@ class Role(StorableObject):
|
|||
if not self.emails_to_members:
|
||||
return emails
|
||||
users_with_roles = get_publisher().user_class.get_users_with_role(self.id)
|
||||
emails.extend([x.email for x in users_with_roles if x.email])
|
||||
emails.extend([x.email for x in users_with_roles if x.email and x.is_active])
|
||||
return emails
|
||||
|
||||
def is_internal(self):
|
||||
|
|
Loading…
Reference in New Issue