mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-12-18 14:33:49 +01:00
LSaddon SUPANN: add support for some attributes
Add support of following attributes: - supannCivilite: add supannGetCivilitePossibleValues() - eduPersonAffiliation: add supannGetAffiliationPossibleValues() and supannCheckEduPersonAffiliation() - supannCheckEduPersonAffiliation: add supannGetAffiliationPossibleValues() and supannCheckEduPersonPrimaryAffiliation() - supannCheckEduPersonPrimaryAffiliation: add generate_eduPersonPrincipalName()
This commit is contained in:
parent
de62999fea
commit
43cf5ccd7a
6 changed files with 272 additions and 12 deletions
|
@ -3,7 +3,7 @@
|
|||
<para>Cette section décrit la manière de configurer des règles de vérification
|
||||
d'intégrité sur les données des attributs. Il est possible de valider la valeur
|
||||
de l'attribut par l'intermédiraire de la vérification de résultat d'une
|
||||
recherche paramètrable dans l'annuaire ou encore d'appeler une fonction de
|
||||
recherche paramètrable dans l'annuaire ou encore d'appeler une fonction de
|
||||
votre choix pour effectuer la vérification voulue.</para>
|
||||
|
||||
<sect4 id='config-LSattribute-validation-search'>
|
||||
|
@ -12,7 +12,7 @@
|
|||
pas en conflit avec d'autres objets de l'annuaire. Ce test peut également
|
||||
permetre de vérifier si les valeurs devant faire référence à d'autres objets
|
||||
de l'annuaire sont correctes.</para>
|
||||
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['validation' => array (
|
||||
|
@ -103,10 +103,10 @@
|
|||
<sect4 id='config-LSattribute-validation-function'>
|
||||
<title>Validation par l'exécution d'une fonction</title>
|
||||
<para>Il est possible d'effectuer la validation de l'attribut par l'exécution
|
||||
d'une fonction de votre choix. Il lui sera passé en paramètre le LSobject
|
||||
complet. Si la fonction ne retourne pas <emphasis>true</emphasis>, la
|
||||
validation échouera.</para>
|
||||
|
||||
d'une fonction de votre choix. Il lui sera passé en paramètre une référence à
|
||||
l'objet <literal>LSldapObject</literal> courant. Si la fonction ne retourne
|
||||
pas <emphasis>true</emphasis>, la validation échouera.</para>
|
||||
|
||||
<programlisting linenumbering="unnumbered">
|
||||
<citetitle>Structure</citetitle>...
|
||||
<![CDATA['validation' => array (
|
||||
|
|
|
@ -45,6 +45,32 @@ $GLOBALS['LS_SUPANN_ETABLISSEMENT_DN'] = 'supannCodeEntite=XXX,ou=structures,dc=
|
|||
// Exemple : 0753742K
|
||||
$GLOBALS['LS_SUPANN_ETABLISSEMENT_UAI'] = '0753742K';
|
||||
|
||||
// LSformat de l'attribut eduPersonPrincipalName
|
||||
$GLOBALS['LS_SUPANN_EPPN_FORMAT'] = "%{uid}@univ.fr";
|
||||
|
||||
// Liste des valeurs possibles des affiliations et leur label
|
||||
$GLOBALS['LS_SUPANN_AFFILIATIONS'] = array (
|
||||
'affiliate' => ___('Affiliate'),
|
||||
'alum' => ___('Alumnus'),
|
||||
'employee' => ___('Employee'),
|
||||
'faculty' => ___('Faculty'),
|
||||
'member' => ___('Member'),
|
||||
'student' => ___('Student'),
|
||||
'retired' => ___('Retired'),
|
||||
'teacher' => ___('Teacher'),
|
||||
'staff' => ___('Staff'),
|
||||
'researcher' => ___('Researcher'),
|
||||
'emeritus' => ___('Emeritus teacher'),
|
||||
'library-walk-in' => ___('Library - walk-in'),
|
||||
'registered-reader' => ___('Library - registered'),
|
||||
);
|
||||
|
||||
// Liste des valeurs possibles de la civilité d'une personne et leur label
|
||||
$GLOBALS['LS_SUPANN_CIVILITES'] = array (
|
||||
'Mme' => ___('Mrs.'),
|
||||
'M.' => ___('Mr.'),
|
||||
);
|
||||
|
||||
/*
|
||||
* Nomenclatures SUPANN
|
||||
*
|
||||
|
|
|
@ -57,7 +57,8 @@ LSerror :: defineError('SUPANN_02',
|
|||
'LS_SUPANN_LSOBJECT_ENTITE_TYPE',
|
||||
'LS_SUPANN_LSOBJECT_ENTITE_FORMAT_SHORTNAME',
|
||||
'LS_SUPANN_ETABLISSEMENT_UAI',
|
||||
'LS_SUPANN_ETABLISSEMENT_DN'
|
||||
'LS_SUPANN_ETABLISSEMENT_DN',
|
||||
'LS_SUPANN_EPPN_FORMAT',
|
||||
);
|
||||
|
||||
foreach($MUST_DEFINE_STRING as $string) {
|
||||
|
@ -74,6 +75,8 @@ LSerror :: defineError('SUPANN_02',
|
|||
}
|
||||
|
||||
$MUST_DEFINE_ARRAY= array(
|
||||
'LS_SUPANN_CIVILITES',
|
||||
'LS_SUPANN_AFFILIATIONS',
|
||||
'supannNomenclatures',
|
||||
);
|
||||
foreach($MUST_DEFINE_ARRAY as $array) {
|
||||
|
@ -425,3 +428,114 @@ LSerror :: defineError('SUPANN_02',
|
|||
}
|
||||
return $retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les valeurs possibles de l'attribut supannCivilite.
|
||||
*
|
||||
* Cette fonction est prévue pour pouvoir être utilisé comme paramètre
|
||||
* get_possible_values de la configuration HTML de l'attribut
|
||||
* supannCivilite avec un type d'attribut HTML select_list (ou select_box).
|
||||
*
|
||||
* @param[in] $options La configuration HTML de l'attribut
|
||||
* @param[in] $name Le nom de l'attribut
|
||||
* @param[in] &$ldapObject Une référence à l'object LSldapObject
|
||||
*
|
||||
* @retval array Tableau contenant les valeurs possibles de l'attribut
|
||||
* (avec les labels traduits).
|
||||
**/
|
||||
function supannGetCivilitePossibleValues($options, $name, &$ldapObject) {
|
||||
$retval = array();
|
||||
foreach($GLOBALS['LS_SUPANN_CIVILITES'] as $value => $label)
|
||||
$retval[$value] = __($label);
|
||||
return $retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne les valeurs possibles des affiliations.
|
||||
*
|
||||
* Cette fonction est prévue pour pouvoir être utilisé comme paramètre
|
||||
* get_possible_values de la configuration HTML de l'attribut
|
||||
* eduPersonAffiliation (par exemple) avec un type d'attribut HTML select_list.
|
||||
*
|
||||
* @param[in] $options La configuration HTML de l'attribut
|
||||
* @param[in] $name Le nom de l'attribut
|
||||
* @param[in] &$ldapObject Une référence à l'object LSldapObject
|
||||
*
|
||||
* @retval array Tableau contenant les valeurs possibles de l'attribut
|
||||
* (avec les labels traduits).
|
||||
**/
|
||||
function supannGetAffiliationPossibleValues($options, $name, &$ldapObject) {
|
||||
$retval = array();
|
||||
foreach($GLOBALS['LS_SUPANN_AFFILIATIONS'] as $value => $label)
|
||||
$retval[$value] = __($label);
|
||||
return $retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie les valeurs de l'attribut eduPersonAffiliation
|
||||
*
|
||||
* Cette fonction est prévue pour pouvoir être utilisé comme paramètre
|
||||
* function de la configuration de validation de l'intégrité des valeurs
|
||||
* de l'attribut eduPersonAffiliation (paramètre validation).
|
||||
*
|
||||
* Elle s'assure que des valeurs affiliate et member n'ont pas été toutes
|
||||
* les deux selectionnées, car elles sont incompatibles.
|
||||
*
|
||||
* @author Benjamin Dauvergne <bdauvergne@entrouvert.com>
|
||||
*
|
||||
* @param[in] &$ldapObject Une référence à l'object LSldapObject
|
||||
* @author Benjamin Dauvergne <bdauvergne@entrouvert.com>
|
||||
*
|
||||
* @retval boolean True si les valeurs sont valides, False sinon
|
||||
**/
|
||||
global $_supannCheckEduPersonAffiliation_checked;
|
||||
$_supannCheckEduPersonAffiliation_checked = false;
|
||||
function supannCheckEduPersonAffiliation(&$ldapObject) {
|
||||
global $_supannCheckEduPersonAffiliation_checked;
|
||||
$values = $ldapObject->getValue('eduPersonAffiliation');
|
||||
|
||||
if (!$_supannCheckEduPersonAffiliation_checked && in_array('affiliate', $values) && in_array('member', $values)) {
|
||||
$_supannCheckEduPersonAffiliation_checked = true;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie la valeur de l'attribut eduPersonPrimaryAffiliation
|
||||
*
|
||||
* Cette fonction est prévue pour pouvoir être utilisé comme paramètre
|
||||
* function de la configuration de validation de l'intégrité des valeurs
|
||||
* de l'attribut eduPersonPrimaryAffiliation (paramètre validation).
|
||||
*
|
||||
* Elle s'assure que la valeur de l'attribut eduPersonPrimaryAffiliation
|
||||
* fait bien partie des valeurs de l'attribut eduPersonAffiliation.
|
||||
*
|
||||
* @author Benjamin Dauvergne <bdauvergne@entrouvert.com>
|
||||
*
|
||||
* @param[in] &$ldapObject Une référence à l'object LSldapObject
|
||||
*
|
||||
* @retval boolean True si la valeur est valide, False sinon
|
||||
**/
|
||||
function supannCheckEduPersonPrimaryAffiliation(&$ldapObject) {
|
||||
$primary = $ldapObject->getValue('eduPersonPrimaryAffiliation');
|
||||
$affiliations = $ldapObject->getValue('eduPersonAffiliation');
|
||||
if (!array_intersect($primary, $affiliations))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Géneration de la valeur de l'attribut eduPersonPrincipalName
|
||||
* à partir du LSformat configuré dans $GLOBALS['LS_SUPANN_EPPN_FORMAT']
|
||||
*
|
||||
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||
*
|
||||
* @param[in] $ldapObject L'objet ldap
|
||||
*
|
||||
* @retval array La valeur de l'attribut eduPersonOrgDN ou false
|
||||
* si il y a un problème durant la génération
|
||||
*/
|
||||
function generate_eduPersonPrincipalName($ldapObject) {
|
||||
return $ldapObject -> getFData($GLOBALS['LS_SUPANN_EPPN_FORMAT']);
|
||||
}
|
||||
|
|
Binary file not shown.
|
@ -8,7 +8,7 @@ msgstr ""
|
|||
"Project-Id-Version: LdapSaisie\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2020-09-22 14:32+0200\n"
|
||||
"PO-Revision-Date: 2020-09-22 16:20+0200\n"
|
||||
"Last-Translator: Benjamin Renard <brenard@zionetrix.net>\n"
|
||||
"Language-Team: LdapSaisie <ldapsaisie-users@lists.labs.libre-entreprise."
|
||||
"org>\n"
|
||||
|
@ -208,11 +208,11 @@ msgstr ""
|
|||
"Support SUPANN : Impossible de récupérer le basedn des entités. Impossible "
|
||||
"de générer l'attribut %{attr}."
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.supann.php:313
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.supann.php:316
|
||||
msgid "Entity %{id} (unrecognized)"
|
||||
msgstr "Entité %{id} (non-reconnue)"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.supann.php:408
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.supann.php:411
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_select.php:58
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_select_object.php:102
|
||||
msgid "%{value} (unrecognized value)"
|
||||
|
@ -2342,6 +2342,66 @@ msgstr "[pas une chaîne de caractères]"
|
|||
msgid "Folder not found"
|
||||
msgstr "Dossier introuvable"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:53
|
||||
msgid "Affiliate"
|
||||
msgstr "Affilié"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:54
|
||||
msgid "Alumnus"
|
||||
msgstr "Ancien apprenant"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:55
|
||||
msgid "Employee"
|
||||
msgstr "Employé"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:56
|
||||
msgid "Faculty"
|
||||
msgstr "Faculté"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:57
|
||||
msgid "Member"
|
||||
msgstr "Membre"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:58
|
||||
msgid "Student"
|
||||
msgstr "Étudiant"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:59
|
||||
msgid "Retired"
|
||||
msgstr "Retraité"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:60
|
||||
msgid "Teacher"
|
||||
msgstr "Enseignant"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:61
|
||||
msgid "Staff"
|
||||
msgstr "Staff"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:62
|
||||
msgid "Researcher"
|
||||
msgstr "Chercheur"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:63
|
||||
msgid "Emeritus teacher"
|
||||
msgstr "Professeur émérite"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:64
|
||||
msgid "Library - walk-in"
|
||||
msgstr "Bibliothèque - Accès libre"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:65
|
||||
msgid "Library - registered"
|
||||
msgstr "Bibliothèque - Inscrit"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:70
|
||||
msgid "Mrs."
|
||||
msgstr "Madame"
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:71
|
||||
msgid "Mr."
|
||||
msgstr "Monsieur"
|
||||
|
||||
#: templates/default/LSaccessRightsMatrixView.tpl:18
|
||||
msgid "Attributes / Profiles"
|
||||
msgstr "Attributs / Profils"
|
||||
|
|
|
@ -157,11 +157,11 @@ msgid ""
|
|||
"attribute %{attr}."
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.supann.php:313
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.supann.php:316
|
||||
msgid "Entity %{id} (unrecognized)"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.supann.php:408
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/addons/LSaddons.supann.php:411
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_select.php:58
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/includes/class/class.LSformElement_select_object.php:102
|
||||
msgid "%{value} (unrecognized value)"
|
||||
|
@ -1995,6 +1995,66 @@ msgstr ""
|
|||
msgid "Folder not found"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:53
|
||||
msgid "Affiliate"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:54
|
||||
msgid "Alumnus"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:55
|
||||
msgid "Employee"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:56
|
||||
msgid "Faculty"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:57
|
||||
msgid "Member"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:58
|
||||
msgid "Student"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:59
|
||||
msgid "Retired"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:60
|
||||
msgid "Teacher"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:61
|
||||
msgid "Staff"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:62
|
||||
msgid "Researcher"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:63
|
||||
msgid "Emeritus teacher"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:64
|
||||
msgid "Library - walk-in"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:65
|
||||
msgid "Library - registered"
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:70
|
||||
msgid "Mrs."
|
||||
msgstr ""
|
||||
|
||||
#: /home/brenard/dev/ldapsaisie_clean3/src/conf/LSaddons/config.LSaddons.supann.php:71
|
||||
msgid "Mr."
|
||||
msgstr ""
|
||||
|
||||
#: templates/default/LSaccessRightsMatrixView.tpl:18
|
||||
msgid "Attributes / Profiles"
|
||||
msgstr ""
|
||||
|
|
Loading…
Reference in a new issue