From a85a76247a2e6a283b51e29b17775c53d9a7e47e Mon Sep 17 00:00:00 2001
From: Ryan Cross <rcross@amsl.com>
Date: Wed, 6 Sep 2017 21:29:59 +0000
Subject: [PATCH] Change announcement tool access function to use data from
 AnnouncementFrom objects.  Fixes #2362.  Commit ready for merge  - Legacy-Id:
 14103

---
 ietf/secr/announcement/views.py | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/ietf/secr/announcement/views.py b/ietf/secr/announcement/views.py
index 3d0c4464e..9d82f196c 100644
--- a/ietf/secr/announcement/views.py
+++ b/ietf/secr/announcement/views.py
@@ -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