Accounts authorized to sumbit liaison statements. See #343

- Legacy-Id: 2331
This commit is contained in:
Emilio A. Sánchez López 2010-07-08 09:23:43 +00:00
parent 96cb4acffa
commit 95afaeb5e4
2 changed files with 59 additions and 0 deletions

45
ietf/liaisons/accounts.py Normal file
View file

@ -0,0 +1,45 @@
from ietf.idtracker.models import Role
def get_person_for_user(user):
return user.get_profile().person()
def is_areadirector(person):
return bool(person.areadirector_set.all())
def is_wgchair(person):
return bool(person.wgchair_set.all())
def is_wgsecretary(person):
return bool(person.wgsecretary_set.all())
def has_role(person, role):
return bool(person.role_set.filter(pk=role))
def is_ietfchair(person):
return has_role(person, Role.IETF_CHAIR)
def is_iabchair(person):
return has_role(person, Role.IAB_CHAIR)
def is_iab_executive_director(person):
return has_role(person, Role.IAB_EXCUTIVE_DIRECTOR)
def can_add_liaison(user):
person = get_person_for_user(user)
if not person:
return False
if (is_areadirector(person) or is_wgchair(person) or
is_wgsecretary(person) or is_ietfchair(person) or
is_iabchair(person) or is_iab_executive_director(person)):
return True
return False

View file

@ -0,0 +1,14 @@
from ietf.ietfauth.decorators import _CheckLogin403
from ietf.liaisons.accounts import can_add_liaison
def can_submit_liaison(view_func=None):
def decorate(view_func):
return _CheckLogin403(
view_func,
lambda u: can_add_liaison(u),
"Restricted to participants who are authorized to submit liaison statements on behalf of the various IETF entities")
if view_func:
return decorate(view_func)
return decorate