Loading config.local.php.default +6 −1 Original line number Diff line number Diff line Loading @@ -156,6 +156,11 @@ return [ * à rappchcher ensuite de intervenant.utilisateurCode pour faire la correspondance utilisateur => intervenant */ 'utilisateurCode' => 'supannEmpId', /* Filtre de code utilisateur. * Expression régulière permettant de selectionner une valeur spécifique d'un atttribut utilisateurCode multivalué (par exemple * supannRefId). Laisser commenté pour ne pas effectuer de filtrage. */ //'utilisateurCodeFiltre' => '/^{OSE}(.*)$/', /* Filtre de recherche d'utilisateurs pour les affectations */ 'utilisateurFiltre' => '(eduPersonAffiliation=member)(!(eduPersonAffiliation=student))', Loading config/autoload/unicaen-app.global.php +5 −4 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ return [ 'LOGIN' => AppConfig::get('ldap', 'loginAttribute'), 'FILTER' => AppConfig::get('ldap', 'utilisateurFiltre'), 'CODE' => AppConfig::get('ldap', 'utilisateurCode'), 'CODEFILTER' => AppConfig::get('ldap', 'utilisateurCodeFiltre'), ], ], Loading module/Application/src/Application/Connecteur/Factory/LdapConnecteurFactory.php +5 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,10 @@ class LdapConnecteurFactory $service->setUtilisateurCode( $configLdapUtilisateur['CODE'] ); } if (isset($configLdapUtilisateur['CODEFILTER'])){ $service->setUtilisateurCodeFiltre( $configLdapUtilisateur['CODEFILTER'] ); } $service->setUtilisateurExtraMasque(\AppConfig::get('ldap', 'utilisateurExtraMasque', '')); $service->setUtilisateurExtraAttributes(\AppConfig::get('ldap', 'utilisateurExtraAttributes', [])); Loading module/Application/src/Application/Connecteur/LdapConnecteur.php +48 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,11 @@ class LdapConnecteur extends AbstractService */ private $utilisateurCode; /** * @var string */ private $utilisateurCodeFiltre = ''; /** * @var string */ Loading Loading @@ -205,8 +210,25 @@ class LdapConnecteur extends AbstractService $ldapUser = $this->serviceUserContext->getLdapUser(); if ($ldapUser){ // si utilisateur_code_filtre présent : regexp pour recupérer une valeur précise d'un attribut multivalué, // par exemple l'attribut étiqueté supannRefId $utilisateur_code_filtre = $this->getUtilisateurCodeFiltre(); if ($utilisateur_code_filtre != '') { $utilisateur_courant_code = $this->getPeopleAttribute($ldapUser,$this->getUtilisateurCode()); // si attribut multivalué, valeurs séparées par de virgules -> transformation en array $utilisateur_courant_code_arr = explode(',', $utilisateur_courant_code); foreach ($utilisateur_courant_code_arr as $utilisateur_courant_code_elem) { if (preg_match($utilisateur_code_filtre, $utilisateur_courant_code_elem, $matches)) { return $matches[1]; } } } else { return $this->getPeopleAttribute($ldapUser,$this->getUtilisateurCode()); } } return null; } Loading Loading @@ -285,6 +307,30 @@ class LdapConnecteur extends AbstractService /** * @return string */ public function getUtilisateurCodeFiltre(): string { return $this->utilisateurCodeFiltre; } /** * @param string $utilisateurCodeFiltre * * @return LdapConnecteur */ public function setUtilisateurCodeFiltre(string $utilisateurCodeFiltre): LdapConnecteur { $this->utilisateurCodeFiltre = $utilisateurCodeFiltre; return $this; } /** * @return string */ Loading Loading
config.local.php.default +6 −1 Original line number Diff line number Diff line Loading @@ -156,6 +156,11 @@ return [ * à rappchcher ensuite de intervenant.utilisateurCode pour faire la correspondance utilisateur => intervenant */ 'utilisateurCode' => 'supannEmpId', /* Filtre de code utilisateur. * Expression régulière permettant de selectionner une valeur spécifique d'un atttribut utilisateurCode multivalué (par exemple * supannRefId). Laisser commenté pour ne pas effectuer de filtrage. */ //'utilisateurCodeFiltre' => '/^{OSE}(.*)$/', /* Filtre de recherche d'utilisateurs pour les affectations */ 'utilisateurFiltre' => '(eduPersonAffiliation=member)(!(eduPersonAffiliation=student))', Loading
config/autoload/unicaen-app.global.php +5 −4 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ return [ 'LOGIN' => AppConfig::get('ldap', 'loginAttribute'), 'FILTER' => AppConfig::get('ldap', 'utilisateurFiltre'), 'CODE' => AppConfig::get('ldap', 'utilisateurCode'), 'CODEFILTER' => AppConfig::get('ldap', 'utilisateurCodeFiltre'), ], ], Loading
module/Application/src/Application/Connecteur/Factory/LdapConnecteurFactory.php +5 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,10 @@ class LdapConnecteurFactory $service->setUtilisateurCode( $configLdapUtilisateur['CODE'] ); } if (isset($configLdapUtilisateur['CODEFILTER'])){ $service->setUtilisateurCodeFiltre( $configLdapUtilisateur['CODEFILTER'] ); } $service->setUtilisateurExtraMasque(\AppConfig::get('ldap', 'utilisateurExtraMasque', '')); $service->setUtilisateurExtraAttributes(\AppConfig::get('ldap', 'utilisateurExtraAttributes', [])); Loading
module/Application/src/Application/Connecteur/LdapConnecteur.php +48 −2 Original line number Diff line number Diff line Loading @@ -55,6 +55,11 @@ class LdapConnecteur extends AbstractService */ private $utilisateurCode; /** * @var string */ private $utilisateurCodeFiltre = ''; /** * @var string */ Loading Loading @@ -205,8 +210,25 @@ class LdapConnecteur extends AbstractService $ldapUser = $this->serviceUserContext->getLdapUser(); if ($ldapUser){ // si utilisateur_code_filtre présent : regexp pour recupérer une valeur précise d'un attribut multivalué, // par exemple l'attribut étiqueté supannRefId $utilisateur_code_filtre = $this->getUtilisateurCodeFiltre(); if ($utilisateur_code_filtre != '') { $utilisateur_courant_code = $this->getPeopleAttribute($ldapUser,$this->getUtilisateurCode()); // si attribut multivalué, valeurs séparées par de virgules -> transformation en array $utilisateur_courant_code_arr = explode(',', $utilisateur_courant_code); foreach ($utilisateur_courant_code_arr as $utilisateur_courant_code_elem) { if (preg_match($utilisateur_code_filtre, $utilisateur_courant_code_elem, $matches)) { return $matches[1]; } } } else { return $this->getPeopleAttribute($ldapUser,$this->getUtilisateurCode()); } } return null; } Loading Loading @@ -285,6 +307,30 @@ class LdapConnecteur extends AbstractService /** * @return string */ public function getUtilisateurCodeFiltre(): string { return $this->utilisateurCodeFiltre; } /** * @param string $utilisateurCodeFiltre * * @return LdapConnecteur */ public function setUtilisateurCodeFiltre(string $utilisateurCodeFiltre): LdapConnecteur { $this->utilisateurCodeFiltre = $utilisateurCodeFiltre; return $this; } /** * @return string */ Loading