POC Campus Condorcet : recuperation des etablissements et unites, part1

cf doc d'analyse v0.4 (formulaire inscription, partie hote) :
    * Etablissement invitant (liste de valeurs basee sur ou=structures)
    (choix unique) (facultatif)
    * Unite ou service invitant (liste de valeurs basee sur ou=structures)
    (choix unique) (facultatif)
This commit is contained in:
Paul Marillonnet 2017-05-10 14:32:24 +02:00
parent 0e0626bde4
commit 56689e9b43
3 changed files with 52 additions and 3 deletions

View File

@ -1,4 +1,5 @@
from django import forms
from .utils import ldap_get_etablissements, ldap_get_unites
AFFILIATION_CHOICES = (
@ -17,12 +18,22 @@ AFFECTATION_CHOICES = (
('R', 'Rouge'),
)
ETABLISSEMENT_CHOICES = (
('0', 'Etablissement 0'),
('1', 'Etablissement 1'),
)
UNITE_CHOICES = (
('0', 'Unite 0'),
('1', 'Unite 1'),
)
class UnitAssignmentForm(forms.Form):
unit = forms.CharField(max_length=100, label="Unite d'affectation")
nom = forms.CharField(max_length=100, label="Nom")
prenom = forms.CharField(max_length=100, label="Prenom")
email = forms.CharField(max_length=100, label="Courriel")
nameid = forms.CharField(max_length=100, label="NameID") #Obsolete
nameid = forms.CharField(max_length=100, label="NameID") # deprecated
# Attributes from the Internet2 eduPerson and RENATER SupAnn2009 specifications.
# ep_* -> eduPerson attributes:
@ -45,6 +56,15 @@ class UnitAssignmentForm(forms.Form):
s_emp_corps = forms.CharField(max_length=100, label="Corps d'appartenance") # supannEmpCorps
s_liste_rouge = forms.BooleanField(initial=True, label="Liste rouge") # supannListeRouge
# hote_* -> host attributes:
hote_nom = forms.CharField(max_length=100, label="Nom de la personne invitante")
hote_prenom = forms.CharField(max_length=100, label="Prenom de la personne invitante")
hote_etablissement = forms.ChoiceField(required=False,
choices=ETABLISSEMENT_CHOICES,
label="Etablissement invitant")
hote_unite = forms.ChoiceField(required=False,
choices=UNITE_CHOICES,
label="Unite invitante")
class Meta:
widgets= {'form' : forms.HiddenInput()}

View File

@ -6,7 +6,11 @@ from urllib2 import build_opener, HTTPHandler, Request, HTTPError
from mellon.models import UserSAMLIdentifier
from django.conf import settings
base = "ou=supannPeople,dc=condorcet,dc=dev,dc=entrouvert,dc=org"
rootdn = 'dc=condorcet,dc=dev,dc=entrouvert,dc=org'
people_base = 'ou=supannPeople,'+rootdn
structures_base = 'ou=structures,'+rootdn
groups_base = 'ou=Groups,'+rootdn
scope = ldap.SCOPE_SUBTREE
pocform = 'traitement_supann'
wcs = 'http://forms-condorcet.dev.entrouvert.org/'
@ -30,6 +34,24 @@ def ldap_init():
l = None
return l
def ldap_get_etablissements():
l = ldap_init()
res = l.search(structures_base, scope, filter, None)
import pdb; pdb.set_trace()
ldap_terminate(l)
#return ['Etablissement 0', 'Etablissement 1']
return 0
def ldap_get_unites():
l = ldap_init()
res = l.search(structures_base, scope, filter, None)
import pdb; pdb.set_trace()
ldap_terminate(l)
#return ['Unite 0', 'Unite 1']
return 0
def ldap_terminate(l):
l.unbind()
@ -41,7 +63,7 @@ def ldap_is_in_directory(id):
l = ldap_init()
# Look for a user possessing the same uid:
res = l.search(base, scope, filter, None)
res = l.search(people_base, scope, filter, None)
rtype, rdata = l.result(res, 0)
ldap_terminate(l)

View File

@ -0,0 +1,7 @@
dn: ou=etablissement0,ou=structures,dc=condorcet,dc=dev,dc=entrouvert,dc=org
objectClass: organizationalUnit
objectClass: supannEntite
objectClass: supannOrg
ou: etablissement0
supannCodeEntite: ETA0
supannEtablissement: {UAI}ETA0