From 35759c2580063e33a6226cd0fb3667345b18978d Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Wed, 25 Mar 2020 18:58:17 +0000 Subject: [PATCH] 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 --- ietf/meeting/helpers.py | 5 +++-- ietf/meeting/tests_views.py | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ietf/meeting/helpers.py b/ietf/meeting/helpers.py index c26a2c024..6f956220f 100644 --- a/ietf/meeting/helpers.py +++ b/ietf/meeting/helpers.py @@ -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 diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index f8fef1673..a56c088e3 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -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))