POC Campus Condorcet : l'etablissement d'un membre que se declare doit etre dans le LDAP

This commit is contained in:
Paul Marillonnet 2017-09-26 11:14:19 +02:00
parent 0d38acd7fa
commit 9162692356
2 changed files with 7 additions and 6 deletions

View File

@ -4,7 +4,7 @@ from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from .utils import ldap_contains_user, saml_collect_data, \
ldap_get_affectations, render_message
ldap_get_affectations, render_message, ldap_get_code_etablissements
from .views import MSG_USERNONE
@ -63,14 +63,12 @@ def user_can_declare(function):
if ldap_contains_user(user_data):
return render_message(request, MSG_USER_REGISTERED)
affectations = [code for code, _ in ldap_get_affectations()]
etablissements = [code for code, _ in ldap_get_code_etablissements()]
try:
affectations.remove(None) # remove extra null entry
etablissements.remove(None) # remove extra null entry
except:
pass
user_affectations = set([user_data.get('s_etablissement'),
user_data.get('s_entite_affectation')])
if user_affectations & set(affectations):
if user_data.get('s_etablissement') in etablissements:
return function(request, *args, **kwargs)
return render_message(request, MSG_STRUCT_NOT_IN_CAMPUS)
return wrapped

View File

@ -83,6 +83,9 @@ def ldap_get_etablissements():
return ldap_get_attribute_from_subtree_nodes(
structures_base, '(objectClass=supannOrg)', 'ou')
def ldap_get_code_etablissements():
return ldap_get_attribute_from_subtree_nodes(
structures_base, '(objectClass=supannOrg)', 'supannEtablissement')
def ldap_get_unites():
"""Used to fill the choices in hote_unite form ChoiceField."""