Allow an out-of-area AD assigned as the AD for a WG to approve interim requests for that WG. Fixes #2930. Commit ready for merge.

- Legacy-Id: 17538
This commit is contained in:
Robert Sparks 2020-03-25 18:58:17 +00:00
parent c3135889b3
commit 35759c2580
2 changed files with 7 additions and 3 deletions

View file

@ -326,8 +326,9 @@ def can_approve_interim_request(meeting, user):
if not session:
return False
group = session.group
if group.type.slug == 'wg' and group.parent.role_set.filter(name='ad', person=person):
return True
if group.type.slug == 'wg':
if group.parent.role_set.filter(name='ad', person=person) or group.role_set.filter(name='ad', person=person):
return True
if group.type.slug == 'rg' and group.parent.role_set.filter(name='chair', person=person):
return True
return False

View file

@ -1747,9 +1747,12 @@ class InterimTests(TestCase):
# related AD
user = User.objects.get(username='ad')
self.assertTrue(can_approve_interim_request(meeting=meeting,user=user))
# other AD
# AD from other area
user = User.objects.get(username='ops-ad')
self.assertFalse(can_approve_interim_request(meeting=meeting,user=user))
# AD from other area assigned as the WG AD anyhow (cross-area AD)
user = RoleFactory(name_id='ad',group=group).person.user
self.assertTrue(can_approve_interim_request(meeting=meeting,user=user))
# WG Chair
user = User.objects.get(username='marschairman')
self.assertFalse(can_approve_interim_request(meeting=meeting,user=user))