Skip to content

Commit cecf079

Browse files
committed
Merged in [19315] from rjsparks@nostrum.com:
Restore ADs ability to charter new groups. Fixes ietf-tools#3397. , - Legacy-Id: 19334 Note: SVN reference [19315] has been migrated to Git commit 311b472
2 parents 3331732 + 311b472 commit cecf079

2 files changed

Lines changed: 19 additions & 11 deletions

File tree

ietf/group/tests_info.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -479,11 +479,16 @@ def test_create(self):
479479
area = Group.objects.filter(type="area").first()
480480

481481
# normal get
482-
r = self.client.get(url)
483-
self.assertEqual(r.status_code, 200)
484-
q = PyQuery(r.content)
485-
self.assertEqual(len(q('form input[name=acronym]')), 1)
482+
for username in ("secretary","ad","irtf-chair"):
483+
self.client.logout()
484+
login_testing_unauthorized(self, username, url)
485+
r = self.client.get(url)
486+
self.assertEqual(r.status_code, 200)
487+
q = PyQuery(r.content)
488+
self.assertEqual(len(q('form input[name=acronym]')), 1)
486489

490+
self.client.logout()
491+
login_testing_unauthorized(self, "secretary", url)
487492
# faulty post
488493
r = self.client.post(url, dict(acronym="foobarbaz")) # No name
489494
self.assertEqual(r.status_code, 200)
@@ -527,19 +532,21 @@ def test_create(self):
527532
def test_create_rg(self):
528533

529534
url = urlreverse('ietf.group.views.edit', kwargs=dict(group_type="rg", action="charter"))
530-
login_testing_unauthorized(self, "secretary", url)
531535

532536
irtf = Group.objects.get(acronym='irtf')
533537
num_rgs = len(Group.objects.filter(type="rg"))
534538

535539
proposed_state = GroupStateName.objects.get(slug="proposed")
536540

537541
# normal get
538-
r = self.client.get(url)
539-
self.assertEqual(r.status_code, 200)
540-
q = PyQuery(r.content)
541-
self.assertEqual(len(q('form input[name=acronym]')), 1)
542-
self.assertEqual(q('form select[name=parent]')[0].value,'%s'%irtf.pk)
542+
for username in ("secretary", "ad", "irtf-chair"):
543+
self.client.logout()
544+
login_testing_unauthorized(self, username, url)
545+
r = self.client.get(url)
546+
self.assertEqual(r.status_code, 200)
547+
q = PyQuery(r.content)
548+
self.assertEqual(len(q('form input[name=acronym]')), 1)
549+
self.assertEqual(q('form select[name=parent]')[0].value,'%s'%irtf.pk)
543550

544551
r = self.client.post(url, dict(acronym="testrg", name="Testing RG", state=proposed_state.pk, parent=irtf.pk))
545552
self.assertEqual(r.status_code, 302)

ietf/group/views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,8 @@ def diff(attr, name):
904904
or group.has_role(request.user, group.features.groupman_roles)):
905905
permission_denied(request, "You don't have permission to access this view")
906906
else:
907-
if not has_role(request.user, "Secretariat"):
907+
# This allows ADs to create RG and the IRTF Chair to create WG, but we trust them not to
908+
if not has_role(request.user, ("Secretariat", "Area Director", "IRTF Chair")):
908909
permission_denied(request, "You don't have permission to access this view")
909910

910911

0 commit comments

Comments
 (0)