diff --git a/django/sp_sso/saml/forms.py b/django/sp_sso/saml/forms.py index 90c452f..8d87575 100644 --- a/django/sp_sso/saml/forms.py +++ b/django/sp_sso/saml/forms.py @@ -1,7 +1,7 @@ from django.utils.translation import ugettext_lazy as _ from django import forms from .utils import ldap_get_unites, ldap_get_etablissements, sso_attributes, \ - sso_select_attributes + sso_select_attributes, sso_tupled_attributes AFFILIATION_CHOICES = ( @@ -22,28 +22,28 @@ AFFECTATION_CHOICES = ( ) EMP_CORPS_CHOICES = ( -('{NCORPS}051', "ATTACHE D'ADMINISTRATION DE L'ETAT"), -('{NCORPS}054', 'SECRETAIRE ADMINISTRATIF'), -('{NCORPS}056', " ADJ. ADM DE L'EN ET DE L'ENS SUP "), -('{NCORPS}275', 'ASSISTANT INGENIEUR ( RECHERCHE CNRS)'), -('{NCORPS}276', "INGENIEUR D'ETUDES( RECHERCHE CNRS)"), -('{NCORPS}277', 'INGENIEUR DE RECHERCHE ( RECHERCHE CNRS)'), -('{NCORPS}278', 'ADJOINT TECHNIQUE ( RECHERCHE CNRS)'), -('{NCORPS}279', 'TECHNICIEN ( RECHERCHE CNRS)'), -('{NCORPS}300', 'PROFESSEUR DES UNIVERSITES'), -('{NCORPS}301', 'MAITRE DE CONFERENCES DES UNIVERSITES'), -('{NCORPS}305', "ASSISTANT DE L'ENSEIGNEMENT SUPERIEUR"), -('{NCORPS}310', 'PROF DES UNIV.- PRATICIEN HOSPITALIER'), -('{NCORPS}311', 'MAITRE DE CONF PRATICIEN HOSPITALIER '), -('{NCORPS}355', "DIR. D'ETUDES EPHE ENC EFEO"), -('{NCORPS}551', 'PROFESSEUR AGREGE'), -('{NCORPS}553', 'PROFESSEUR CERTIFIE'), -('{NCORPS}562', "CHARGE D'ENSEIGNEMENT HORS EPS"), -('{NCORPS}830', 'TECHNICIEN DE RECHERCHE & FORMATION(NES)'), -('{NCORPS}835', "INGENIEUR D'ETUDES (RECH ET FORM)"), -('{NCORPS}836', 'INGENIEUR DE RECHERCHE (RECH ET FORM)'), +('{NCORPS}056', "ADJ. ADM DE L'EN ET DE L'ENS SUP"), ('{NCORPS}837', 'ADJOINT TECHNIQUE DE RECH.ET FORMATION'), ('{NCORPS}839', 'ADJOINT TECHNIQUE-RECHERCHE & FORMATION'), +('{NCORPS}278', 'ADJOINT TECHNIQUE ( RECHERCHE CNRS)'), +('{NCORPS}305', "ASSISTANT DE L'ENSEIGNEMENT SUPERIEUR"), +('{NCORPS}275', 'ASSISTANT INGENIEUR ( RECHERCHE CNRS)'), +('{NCORPS}051', "ATTACHE D'ADMINISTRATION DE L'ETAT"), +('{NCORPS}562', "CHARGE D'ENSEIGNEMENT HORS EPS"), +('{NCORPS}355', "DIR. D'ETUDES EPHE ENC EFEO"), +('{NCORPS}276', "INGENIEUR D'ETUDES(RECHERCHE CNRS)"), +('{NCORPS}835', "INGENIEUR D'ETUDES (RECH ET FORM)"), +('{NCORPS}836', 'INGENIEUR DE RECHERCHE (RECH ET FORM)'), +('{NCORPS}277', 'INGENIEUR DE RECHERCHE (RECHERCHE CNRS)'), +('{NCORPS}301', 'MAITRE DE CONFERENCES DES UNIVERSITES'), +('{NCORPS}311', 'MAITRE DE CONF PRATICIEN HOSPITALIER '), +('{NCORPS}310', 'PROF DES UNIV.- PRATICIEN HOSPITALIER'), +('{NCORPS}551', 'PROFESSEUR AGREGE'), +('{NCORPS}553', 'PROFESSEUR CERTIFIE'), +('{NCORPS}300', 'PROFESSEUR DES UNIVERSITES'), +('{NCORPS}054', 'SECRETAIRE ADMINISTRATIF'), +('{NCORPS}279', 'TECHNICIEN ( RECHERCHE CNRS)'), +('{NCORPS}830', 'TECHNICIEN DE RECHERCHE & FORMATION(NES)'), ('{NCORPS}841', 'TECHNIQUE CONTRACTUEL CNRS') ) @@ -73,6 +73,13 @@ class RegistrationForm(forms.Form): if field in sso_select_attributes: simple_choice = '%s' % kwargs['initial'][field] self.fields[field].choices = ((simple_choice, (simple_choice)),) + + if field in sso_tupled_attributes.keys(): + simple_choice = '%s' % kwargs['initial'][field] + backend_dict = dict(globals().get(sso_tupled_attributes[field], {})) + if backend_dict.get(simple_choice): + self.fields[field].choices = ((simple_choice, + backend_dict.get(simple_choice)),) self.fields[field].widget.attrs['readonly'] = True nom = forms.CharField(max_length=100, label=_("Last name")) diff --git a/django/sp_sso/saml/utils.py b/django/sp_sso/saml/utils.py index 5e5768b..e0988cb 100644 --- a/django/sp_sso/saml/utils.py +++ b/django/sp_sso/saml/utils.py @@ -22,7 +22,11 @@ sso_attributes = [ 's_liste_rouge', 'hote_commentaire'] sso_select_attributes = [ - 'ep_primary_affiliation', 's_emp_corps', 'hote_unite', 'hote_etablissement'] + 'ep_primary_affiliation', 'hote_unite', 'hote_etablissement'] + +sso_tupled_attributes = { + 's_emp_corps': 'EMP_CORPS_CHOICES' +} supann_host_role_attribute = 'supannRoleGenerique' supann_host_role_value = '{SUPANN}R10' # 'Responsable de mission'