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:
parent
c3135889b3
commit
35759c2580
|
@ -326,8 +326,9 @@ def can_approve_interim_request(meeting, user):
|
||||||
if not session:
|
if not session:
|
||||||
return False
|
return False
|
||||||
group = session.group
|
group = session.group
|
||||||
if group.type.slug == 'wg' and group.parent.role_set.filter(name='ad', person=person):
|
if group.type.slug == 'wg':
|
||||||
return True
|
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):
|
if group.type.slug == 'rg' and group.parent.role_set.filter(name='chair', person=person):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -1747,9 +1747,12 @@ class InterimTests(TestCase):
|
||||||
# related AD
|
# related AD
|
||||||
user = User.objects.get(username='ad')
|
user = User.objects.get(username='ad')
|
||||||
self.assertTrue(can_approve_interim_request(meeting=meeting,user=user))
|
self.assertTrue(can_approve_interim_request(meeting=meeting,user=user))
|
||||||
# other AD
|
# AD from other area
|
||||||
user = User.objects.get(username='ops-ad')
|
user = User.objects.get(username='ops-ad')
|
||||||
self.assertFalse(can_approve_interim_request(meeting=meeting,user=user))
|
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
|
# WG Chair
|
||||||
user = User.objects.get(username='marschairman')
|
user = User.objects.get(username='marschairman')
|
||||||
self.assertFalse(can_approve_interim_request(meeting=meeting,user=user))
|
self.assertFalse(can_approve_interim_request(meeting=meeting,user=user))
|
||||||
|
|
Loading…
Reference in a new issue