Merged in [14103] from rcross@amsl.com:

Change announcement tool access function to use data from AnnouncementFrom objects.  Fixes #2362.
 - Legacy-Id: 14108
Note: SVN reference [14103] has been migrated to Git commit a85a76247a
This commit is contained in:
Henrik Levkowetz 2017-09-08 12:54:38 +00:00
commit 40fd78a0b4

View file

@ -4,6 +4,7 @@ from django.http import HttpResponseForbidden
from django.shortcuts import render, redirect
from ietf.group.models import Role
from ietf.message.models import AnnouncementFrom
from ietf.ietfauth.utils import has_role
from ietf.secr.announcement.forms import AnnounceForm
from ietf.secr.utils.decorators import check_for_cancel
@ -19,25 +20,19 @@ def check_access(user):
'''
if hasattr(user, "person"):
person = user.person
groups_with_access = ("iab", "isoc", "isocbot", "rsoc", "ietf", "iaoc", "rse", "mentor","ietf-trust")
if Role.objects.filter(person=person,
group__acronym__in=groups_with_access,
name="chair") or has_role(user, ["Secretariat","IAD"]):
if has_role(user, "Secretariat"):
return True
for role in person.role_set.all():
if AnnouncementFrom.objects.filter(name=role.name,group=role.group):
return True
if Role.objects.filter(name="chair",
group__acronym__startswith="nomcom",
group__state="active",
group__type="nomcom",
person=person):
return True
if Role.objects.filter(person=person,
group__acronym='iab',
name='execdir'):
return True
if Role.objects.filter(person=person,
group__acronym='isoc',
name='ceo'):
return True
return False