Mise en place d'un paramètre optionnel pour filtrer les valeurs d'un attribut ldap multivalué.
Modification mise en place à l'Université Lyon 2 pour pouvoir utiliser l'attribut SUPANN supannRefId afin de récupérer le code utilisateur.
Cette merge request propose la création d'un nouveau paramètre de configuration optionnel qui définit une expression régulière permettant de filtrer les valeurs d'un attribut multivalué. Dans l'exemple de l'attribut supannRefId (https://services.renater.fr/documentation/supann/supann2018/recommandations2018/attributs/supannrefid), cela permet d'indiquer l'étiquette de la valeur a récupérer.
Exemple :
'utilisateurCodeFiltre' => '/^{SIHAM}(.*)$/'
Dans notre contexte, certains utilisateurs ont besoin d'accéder à OSE avant d'avoir été insérés dans SIHAM. On a donc défini dans notre annuaire une valeur de supannRefId spécifique pour OSE, de la forme {OSE}xxxxxx
.
Nous avons donc configuré le filtre :
'utilisateurCodeFiltre' => '/^{OSE}(.*)$/'
Merge request reports
Activity
205 210 $ldapUser = $this->serviceUserContext->getLdapUser(); 206 211 207 212 if ($ldapUser){ 208 return $this->getPeopleAttribute($ldapUser,$this->getUtilisateurCode()); 213 // si utilisateur_code_filtre présent : regexp pour recupérer une valeur précise d'un attribut multivalué, 214 // par exemple l'attribut étiqueté supannRefId 215 $utilisateur_code_filtre = $this->getUtilisateurCodeFiltre(); 216 217 if ($utilisateur_code_filtre != '') { 218 $utilisateur_courant_code = $this->getPeopleAttribute($ldapUser,$this->getUtilisateurCode()); 219 220 // si attribut multivalué, valeurs séparées par de virgules -> transformation en array 221 $utilisateur_courant_code_arr = explode(',', $utilisateur_courant_code); mentioned in commit b4cb8bde