Commit bd271be7 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Shibboleth: l'id mis en session ne peut être le supannEmpId/supannEtuId car le...

Shibboleth: l'id mis en session ne peut être le supannEmpId/supannEtuId car le storage Ldap peut trouver un compte correspondant ; prise en compte d'attributs supplémentaires (nom, prénom, civilité)
parent c89fb672
...@@ -54,7 +54,7 @@ class AuthController extends AbstractActionController ...@@ -54,7 +54,7 @@ class AuthController extends AbstractActionController
/** @var AuthenticationService $authService */ /** @var AuthenticationService $authService */
$authService = $this->getServiceLocator()->get('zfcuser_auth_service'); $authService = $this->getServiceLocator()->get('zfcuser_auth_service');
try { try {
$authService->getStorage()->write($shibUser->getId()); $authService->getStorage()->write($shibUser->getUsername());
} catch (ExceptionInterface $e) { } catch (ExceptionInterface $e) {
throw new RuntimeException("Impossible d'écrire dans le storage"); throw new RuntimeException("Impossible d'écrire dans le storage");
} }
......
...@@ -156,7 +156,7 @@ class ShibUser implements UserInterface ...@@ -156,7 +156,7 @@ class ShibUser implements UserInterface
*/ */
public function getPrenom() public function getPrenom()
{ {
return $this->givenName; return $this->prenom;
} }
/** /**
...@@ -168,7 +168,7 @@ class ShibUser implements UserInterface ...@@ -168,7 +168,7 @@ class ShibUser implements UserInterface
} }
/** /**
* @return string * @return string|null
*/ */
public function getCivilite() public function getCivilite()
{ {
...@@ -176,9 +176,9 @@ class ShibUser implements UserInterface ...@@ -176,9 +176,9 @@ class ShibUser implements UserInterface
} }
/** /**
* @param string $civilite * @param string|null $civilite
*/ */
public function setCivilite($civilite) public function setCivilite($civilite = null)
{ {
$this->civilite = $civilite; $this->civilite = $civilite;
} }
......
...@@ -81,7 +81,7 @@ EOS; ...@@ -81,7 +81,7 @@ EOS;
} elseif (isset($_SERVER['supannEmpId'])) { } elseif (isset($_SERVER['supannEmpId'])) {
$id = $_SERVER['supannEmpId']; $id = $_SERVER['supannEmpId'];
} else { } else {
throw new RuntimeException('Un au moins des attributs suivants doivent exister dans $_SERVER : supannEtuId, supannEmpId.'); throw new RuntimeException('Un au moins des attributs suivants doit exister dans $_SERVER : supannEtuId, supannEmpId.');
} }
$mail = null; $mail = null;
...@@ -94,11 +94,34 @@ EOS; ...@@ -94,11 +94,34 @@ EOS;
$displayName = $_SERVER['displayName']; $displayName = $_SERVER['displayName'];
} }
$surname = null;
if (isset($_SERVER['sn'])) {
$surname = $_SERVER['sn'];
} elseif (isset($_SERVER['surname'])) {
$surname = $_SERVER['surname'];
}
$givenName = null;
if (isset($_SERVER['givenName'])) {
$givenName = $_SERVER['givenName'];
}
$civilite = null;
if (isset($_SERVER['supannCivilite'])) {
$civilite = $_SERVER['supannCivilite'];
}
$shibUser = new ShibUser(); $shibUser = new ShibUser();
// propriétés de UserInterface
$shibUser->setId($id); $shibUser->setId($id);
$shibUser->setUsername($eppn); $shibUser->setUsername($eppn);
$shibUser->setDisplayName($displayName); $shibUser->setDisplayName($displayName);
$shibUser->setEmail($mail); $shibUser->setEmail($mail);
$shibUser->setPassword(null);
// autres propriétés
$shibUser->setNom($surname);
$shibUser->setPrenom($givenName);
$shibUser->setCivilite($civilite);
return $shibUser; return $shibUser;
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment