Skip to content

Commit 4fd243d

Browse files
committed
Port wgchairs auth to new schema
- Legacy-Id: 3378
1 parent 7e8667a commit 4fd243d

1 file changed

Lines changed: 22 additions & 4 deletions

File tree

ietf/wgchairs/accounts.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from django.conf import settings
2+
from redesign.group.models import Role
3+
14
def is_secretariat(user):
25
if not user or not user.is_authenticated():
36
return False
@@ -7,19 +10,24 @@ def is_secretariat(user):
710
def is_area_director_for_group(person, group):
811
return bool(group.area.area.areadirector_set.filter(person=person).count())
912

13+
def is_area_director_for_groupREDESIGN(person, group):
14+
return bool(Role.objects.filter(group=group.parent, email__person=person, name="ad"))
15+
1016

1117
def is_group_chair(person, group):
1218
if group.chairs().filter(person=person):
1319
return True
1420
return False
1521

22+
def is_group_chairREDESIGN(person, group):
23+
return bool(Role.objects.filter(group=group, email__person=person, name="chair"))
24+
1625

1726
def is_group_delegate(person, group):
1827
return bool(group.wgdelegate_set.filter(person=person).count())
1928

20-
21-
def is_document_shepherd(person, document):
22-
return person == document.shepherd
29+
def is_group_delegateREDESIGN(person, group):
30+
return bool(Role.objects.filter(group=group, email__person=person, name="delegate"))
2331

2432

2533
def get_person_for_user(user):
@@ -29,6 +37,13 @@ def get_person_for_user(user):
2937
return None
3038

3139

40+
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
41+
from ietf.liaisons.accounts import is_secretariat, get_person_for_user
42+
is_area_director_for_group = is_area_director_for_groupREDESIGN
43+
is_group_chair = is_group_chairREDESIGN
44+
is_group_delegate = is_group_delegateREDESIGN
45+
46+
3247
def can_do_wg_workflow_in_group(user, group):
3348
person = get_person_for_user(user)
3449
if not person:
@@ -87,4 +102,7 @@ def can_manage_writeup_of_a_document(user, document):
87102
if not person or not document.group:
88103
return False
89104
return (can_manage_writeup_of_a_document_no_state(user, document) or
90-
is_document_shepherd(person, document))
105+
person == document.shepherd)
106+
107+
108+

0 commit comments

Comments
 (0)