diff --git a/ietf/group/migrations/0005_auto_20150504_0726.py b/ietf/group/migrations/0005_auto_20150504_0726.py new file mode 100644 index 000000000..ce53f1bc0 --- /dev/null +++ b/ietf/group/migrations/0005_auto_20150504_0726.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + +def create_iab_roles(apps, schema_editor): + Role = apps.get_model('group','Role') + Group = apps.get_model('group','Group') + Person = apps.get_model('person','Person') + + iab = Group.objects.get(acronym='iab') + + iab_names = [ + 'Jari Arkko', + 'Mary Barnes', + 'Marc Blanchet', + 'Ralph Droms', + 'Ted Hardie', + 'Joe Hildebrand', + 'Russ Housley', + 'Erik Nordmark', + 'Robert Sparks', + 'Andrew Sullivan', + 'Dave Thaler', + 'Brian Trammell', + 'Suzanne Woolf', + ] + + for name in iab_names: + person = Person.objects.get(name=name) + person.role_set.add(Role(name_id='member',group=iab,person=person,email_id=person.email_set.filter(active=True).order_by('-time').first().address)) + + +class Migration(migrations.Migration): + + dependencies = [ + ('group', '0004_auto_20150430_0847'), + ] + + operations = [ + migrations.RunPython(create_iab_roles), + ] diff --git a/ietf/ietfauth/utils.py b/ietf/ietfauth/utils.py index f871bc006..fc9647093 100644 --- a/ietf/ietfauth/utils.py +++ b/ietf/ietfauth/utils.py @@ -46,6 +46,7 @@ def has_role(user, role_names, *args, **kwargs): 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"), + "IAB" : Q(person=person, name="member", group__acronym="iab"), "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"), diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index 5da690c45..52c8d7562 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -384,8 +384,7 @@ def agenda(request, num=None, name=None, base=None, ext=None): filtered_assignments = schedule.assignments.exclude(timeslot__type__in=['lead','offagenda']) return render(request, "meeting/"+base+ext, {"schedule":schedule, "filtered_assignments":filtered_assignments, "updated": updated}, content_type=mimetype[ext]) -#TODO - let the IAB in -@role_required('Area Director','Secretariat') +@role_required('Area Director','Secretariat','IAB') def agenda_by_room(request,num=None): meeting = get_meeting(num) schedule = get_schedule(meeting) @@ -397,7 +396,7 @@ def agenda_by_room(request,num=None): ss_by_day[day].append(ss) return render(request,"meeting/agenda_by_room.html",{"meeting":meeting,"ss_by_day":ss_by_day}) -@role_required('Area Director','Secretariat') +@role_required('Area Director','Secretariat','IAB') def agenda_by_type(request,num=None,type=None): meeting = get_meeting(num) schedule = get_schedule(meeting) @@ -406,7 +405,7 @@ def agenda_by_type(request,num=None,type=None): scheduledsessions = scheduledsessions.filter(session__type__slug=type) return render(request,"meeting/agenda_by_type.html",{"meeting":meeting,"scheduledsessions":scheduledsessions}) -@role_required('Area Director','Secretariat') +@role_required('Area Director','Secretariat','IAB') def agenda_by_type_ics(request,num=None,type=None): meeting = get_meeting(num) schedule = get_schedule(meeting)