0003-roles-ignore-roles-inactive-members-email-42428.patch
tests/test_role.py | ||
---|---|---|
7 | 7 |
from wcs.qommon.storage import StorableObject |
8 | 8 |
from wcs.roles import Role, get_user_roles |
9 | 9 | |
10 |
from quixote import get_publisher |
|
11 | ||
10 | 12 | |
11 | 13 |
def setup_module(module): |
12 | 14 |
pub = create_temporary_pub() |
... | ... | |
52 | 54 |
Role(name='é1').store() |
53 | 55 |
Role(name='a1').store() |
54 | 56 |
assert [x[1] for x in get_user_roles()] == ['a1', 'é1', 'f1'] |
57 | ||
58 | ||
59 |
def test_get_emails(): |
|
60 |
User = get_publisher().user_class |
|
61 |
User.wipe() |
|
62 |
Role.wipe() |
|
63 | ||
64 |
role = Role(name='role') |
|
65 |
role.emails_to_members = True |
|
66 |
role.store() |
|
67 | ||
68 |
users = [] |
|
69 |
for i in range(2): |
|
70 |
user = User(name='John Doe %s' % i) |
|
71 |
user.email = 'john.doe.%s@example.com' % i |
|
72 |
user.add_roles([role.id]) |
|
73 |
user.store() |
|
74 |
users.append(user) |
|
75 | ||
76 |
assert len(set(role.get_emails())) == 2 |
|
77 |
users[-1].is_active = False |
|
78 |
users[-1].store() |
|
79 |
assert len(set(role.get_emails())) == 1 |
wcs/roles.py | ||
---|---|---|
72 | 72 |
if not self.emails_to_members: |
73 | 73 |
return emails |
74 | 74 |
users_with_roles = get_publisher().user_class.get_users_with_role(self.id) |
75 |
emails.extend([x.email for x in users_with_roles if x.email]) |
|
75 |
emails.extend([x.email for x in users_with_roles if x.email and x.is_active])
|
|
76 | 76 |
return emails |
77 | 77 | |
78 | 78 |
def is_internal(self): |
79 |
- |