Skip to content
Snippets Groups Projects
Commit 8a8abd2d authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Extraction méthode statique utile extractUsernamesUsurpation() qui détecte et...

Extraction méthode statique utile extractUsernamesUsurpation() qui détecte et extrait les identifiants usurpé et usurpateur éventuels.
parent 140152ff
No related branches found
No related tags found
No related merge requests found
...@@ -89,6 +89,29 @@ class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface, Even ...@@ -89,6 +89,29 @@ class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface, Even
$this->getEventManager()->trigger('userAuthenticated', $e); $this->getEventManager()->trigger('userAuthenticated', $e);
} }
/**
* Extrait le loginUsurpateur et le loginUsurpé si l'identifiant spécifé est de la forme
* "loginUsurpateur=loginUsurpé".
*
* @param string $identifiant Identifiant, éventuellement de la forme "loginUsurpateur=loginUsurpé"
* @return array
* [loginUsurpateur, loginUsurpé] si l'identifiant est de la forme "loginUsurpateur=loginUsurpé" ;
* [] sinon.
*/
static public function extractUsernamesUsurpation($identifiant)
{
if (strpos($identifiant, self::USURPATION_USERNAMES_SEP) > 0) {
list($identifiant, $usernameUsurpe) = explode(self::USURPATION_USERNAMES_SEP, $identifiant, 2);
return [
$identifiant,
$usernameUsurpe
];
}
return [];
}
/** /**
* Authentifie l'identifiant et le mot de passe spécifiés. * Authentifie l'identifiant et le mot de passe spécifiés.
* *
...@@ -102,8 +125,15 @@ class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface, Even ...@@ -102,8 +125,15 @@ class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface, Even
// - le format attendu est "loginUsurpateur=loginUsurpé" // - le format attendu est "loginUsurpateur=loginUsurpé"
// - le mot de passe attendu est celui du compte usurpateur (loginUsurpateur) // - le mot de passe attendu est celui du compte usurpateur (loginUsurpateur)
$this->usernameUsurpe = null; $this->usernameUsurpe = null;
if (strpos($username, self::USURPATION_USERNAMES_SEP) > 0) { // if (strpos($username, self::USURPATION_USERNAMES_SEP) > 0) {
list($username, $this->usernameUsurpe) = explode(self::USURPATION_USERNAMES_SEP, $username, 2); // list($username, $this->usernameUsurpe) = explode(self::USURPATION_USERNAMES_SEP, $username, 2);
// if (!in_array($username, $this->getOptions()->getUsurpationAllowedUsernames())) {
// $this->usernameUsurpe = null;
// }
// }
$usernames = self::extractUsernamesUsurpation($username);
if (count($usernames) === 2) {
list ($username, $this->usernameUsurpe) = $usernames;
if (!in_array($username, $this->getOptions()->getUsurpationAllowedUsernames())) { if (!in_array($username, $this->getOptions()->getUsurpationAllowedUsernames())) {
$this->usernameUsurpe = null; $this->usernameUsurpe = null;
} }
...@@ -226,6 +256,10 @@ class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface, Even ...@@ -226,6 +256,10 @@ class Ldap extends AbstractAdapter implements ServiceManagerAwareInterface, Even
*/ */
public function setEventManager(EventManagerInterface $eventManager) public function setEventManager(EventManagerInterface $eventManager)
{ {
$eventManager->setIdentifiers([
__NAMESPACE__,
__CLASS__,
]);
$this->eventManager = $eventManager; $this->eventManager = $eventManager;
return $this; return $this;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment