Skip to content

Commit 0eed4ad

Browse files
committed
Add has_role(role_name, user) utility to group, used like
group.has_role("chair", request.user). Remove the NomCom specific group utilities, apparently they're not actually used. - Legacy-Id: 6217
1 parent e1bd47b commit 0eed4ad

5 files changed

Lines changed: 6 additions & 31 deletions

File tree

ietf/group/models.py

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,26 +54,13 @@ def latest_event(self, *args, **filter_args):
5454
e = model.objects.filter(group=self).filter(**filter_args).order_by('-time', '-id')[:1]
5555
return e[0] if e else None
5656

57-
def is_chair(self, user):
58-
chair = self.get_chair()
59-
if chair:
60-
return self.get_chair().person.user == user
61-
else:
62-
return False
63-
64-
def is_member(self, user):
65-
members = self.get_members()
66-
users = [member.person.user for member in members]
67-
return user in users
57+
def has_role(self, role_name, user):
58+
return user.is_authenticated() and self.role_set.filter(name=role_name, person__user=user).exists()
6859

6960
def get_chair(self):
7061
chair = self.role_set.filter(name__slug='chair')[:1]
7162
return chair and chair[0] or None
7263

73-
def get_members(self):
74-
members = self.role_set.filter(name__slug__in=["chair", "member", "advisor", "liaison"])
75-
return members
76-
7764
class GroupHistory(GroupInfo):
7865
group = models.ForeignKey(Group, related_name='history_set')
7966
acronym = models.CharField(max_length=40)

ietf/nomcom/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# -*- coding: utf-8 -*-
1+
# -*- coding: utf-8 -*-
22
import os
33

44
from django.db import models

ietf/nomcom/templatetags/nomcom_tags.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def is_chair(user, year):
2424
nomcom = get_nomcom_by_year(year=year)
2525
if has_role(user, "Secretariat"):
2626
return True
27-
return nomcom.group.is_chair(user)
27+
return nomcom.group.has_role("chair", user)
2828

2929

3030
@register.filter

ietf/nomcom/utils.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,6 @@ def get_user_email(user):
6464
return mail
6565

6666

67-
def is_nomcom_member(user, nomcom):
68-
is_group_member = nomcom.group.is_member(user)
69-
if not is_group_member:
70-
raise PermissionDenied("Must be nomcom member")
71-
72-
73-
def is_nomcom_chair(user, nomcom):
74-
is_group_chair = nomcom.group.is_chair(user)
75-
if not is_group_chair:
76-
raise PermissionDenied("Must be nomcom chair")
77-
78-
7967
def get_hash_nominee_position(date, nominee_position_id):
8068
return hashlib.md5('%s%s%s' % (settings.SECRET_KEY, date, nominee_position_id)).hexdigest()
8169

ietf/nomcom/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
 # -*- coding: utf-8 -*-
1+
# -*- coding: utf-8 -*-
22

33
import datetime
44

@@ -81,7 +81,7 @@ def private_key(request, year):
8181
def private_index(request, year):
8282
nomcom = get_nomcom_by_year(year)
8383
all_nominee_positions = NomineePosition.objects.get_by_nomcom(nomcom).not_duplicated()
84-
is_chair = nomcom.group.is_chair(request.user)
84+
is_chair = nomcom.group.has_role("chair", request.user)
8585
message = None
8686
if is_chair and request.method == 'POST':
8787
action = request.POST.get('action')

0 commit comments

Comments
 (0)