From c046739045328664eda687ee48a4182f4a194b0e Mon Sep 17 00:00:00 2001
From: Ryan Cross <rcross@amsl.com>
Date: Sun, 20 Jul 2014 17:17:31 +0000
Subject: [PATCH] allow Team Chairs access to proceedings. Commit ready for
 merge.  - Legacy-Id: 8155

---
 ietf/ietfauth/utils.py          | 23 ++++++++++++-----------
 ietf/secr/middleware/secauth.py |  3 +--
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/ietf/ietfauth/utils.py b/ietf/ietfauth/utils.py
index 96bca58b9..694b12c5e 100644
--- a/ietf/ietfauth/utils.py
+++ b/ietf/ietfauth/utils.py
@@ -41,20 +41,21 @@ def has_role(user, role_names, *args, **kwargs):
             return False
 
         role_qs = {
-	    "Area Director": Q(person=person, name__in=("pre-ad", "ad"), group__type="area", group__state="active"),
-	    "Secretariat": Q(person=person, name="secr", group__acronym="secretariat"),
-	    "IANA": Q(person=person, name="auth", group__acronym="iana"),
+            "Area Director": Q(person=person, name__in=("pre-ad", "ad"), group__type="area", group__state="active"),
+            "Secretariat": Q(person=person, name="secr", group__acronym="secretariat"),
+            "IANA": Q(person=person, name="auth", group__acronym="iana"),
             "RFC Editor": Q(person=person, name="auth", group__acronym="rfceditor"),
             "ISE" : Q(person=person, name="chair", group__acronym="ise"),
-	    "IAD": Q(person=person, name="admdir", group__acronym="ietf"),
-	    "IETF Chair": Q(person=person, name="chair", group__acronym="ietf"),
-	    "IRTF Chair": Q(person=person, name="chair", group__acronym="irtf"),
-	    "IAB Chair": Q(person=person, name="chair", group__acronym="iab"),
+            "IAD": Q(person=person, name="admdir", group__acronym="ietf"),
+            "IETF Chair": Q(person=person, name="chair", group__acronym="ietf"),
+            "IRTF Chair": Q(person=person, name="chair", group__acronym="irtf"),
+            "IAB Chair": Q(person=person, name="chair", group__acronym="iab"),
             "IAB Group Chair": Q(person=person, name="chair", group__type="iab", group__state="active"),
-	    "WG Chair": Q(person=person,name="chair", group__type="wg", group__state__in=["active","bof"]),
-	    "WG Secretary": Q(person=person,name="secr", group__type="wg", group__state__in=["active","bof"]),
-	    "RG Chair": Q(person=person,name="chair", group__type="rg", group__state="active"),
-	    "RG Secretary": Q(person=person,name="secr", group__type="rg", group__state="active"),
+            "WG Chair": Q(person=person,name="chair", group__type="wg", group__state__in=["active","bof"]),
+            "WG Secretary": Q(person=person,name="secr", group__type="wg", group__state__in=["active","bof"]),
+            "RG Chair": Q(person=person,name="chair", group__type="rg", group__state="active"),
+            "RG Secretary": Q(person=person,name="secr", group__type="rg", group__state="active"),
+            "Team Chair": Q(person=person,name="chair", group__type="team", group__state="active"),
             "Nomcom Chair": Q(person=person, name="chair", group__type="nomcom", group__state="active", group__acronym__icontains=kwargs.get('year', '0000')),
             "Nomcom Advisor": Q(person=person, name="advisor", group__type="nomcom", group__state="active", group__acronym__icontains=kwargs.get('year', '0000')),
             "Nomcom": Q(person=person, group__type="nomcom", group__state="active", group__acronym__icontains=kwargs.get('year', '0000')),
diff --git a/ietf/secr/middleware/secauth.py b/ietf/secr/middleware/secauth.py
index 3154d9ca1..69417a8c7 100644
--- a/ietf/secr/middleware/secauth.py
+++ b/ietf/secr/middleware/secauth.py
@@ -5,7 +5,6 @@ from django.contrib.auth.decorators import login_required
 from ietf.ietfauth.utils import has_role, role_required
 
 
-
 class SecAuthMiddleware(object):
     """
     Middleware component that performs custom auth check for secretariat
@@ -46,7 +45,7 @@ class SecAuthMiddleware(object):
                 return login_required(view_func)(request,*view_args,**view_kwargs)
             elif self.is_unrestricted_url(request.path):
                 return role_required('WG Chair','WG Secretary','RG Chair','IAB Group Chair',
-                    'Area Director','Secretariat')(view_func)(request,*view_args,**view_kwargs)
+                    'Area Director','Secretariat','Team Chair')(view_func)(request,*view_args,**view_kwargs)
             else:
                 return role_required('Secretariat')(view_func)(request,*view_args,**view_kwargs)
         else: