diff --git a/src/UnicaenAuth/Controller/AuthController.php b/src/UnicaenAuth/Controller/AuthController.php index d3b468c39e9fc06686bdbd0a30023854a27e1124..0bec8234c32653ee12f23b86a2e74547828658be 100644 --- a/src/UnicaenAuth/Controller/AuthController.php +++ b/src/UnicaenAuth/Controller/AuthController.php @@ -54,7 +54,7 @@ class AuthController extends AbstractActionController /** @var AuthenticationService $authService */ $authService = $this->getServiceLocator()->get('zfcuser_auth_service'); try { - $authService->getStorage()->write($shibUser->getId()); + $authService->getStorage()->write($shibUser->getUsername()); } catch (ExceptionInterface $e) { throw new RuntimeException("Impossible d'écrire dans le storage"); } diff --git a/src/UnicaenAuth/Entity/Shibboleth/ShibUser.php b/src/UnicaenAuth/Entity/Shibboleth/ShibUser.php index 82c4114695736d22317fa3a2ca7c94449869e324..b0c785c2534ceb782d6c79b8b1285a02a7973bfb 100644 --- a/src/UnicaenAuth/Entity/Shibboleth/ShibUser.php +++ b/src/UnicaenAuth/Entity/Shibboleth/ShibUser.php @@ -156,7 +156,7 @@ class ShibUser implements UserInterface */ public function getPrenom() { - return $this->givenName; + return $this->prenom; } /** @@ -168,7 +168,7 @@ class ShibUser implements UserInterface } /** - * @return string + * @return string|null */ public function getCivilite() { @@ -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; } diff --git a/src/UnicaenAuth/Service/ShibService.php b/src/UnicaenAuth/Service/ShibService.php index 902e3f55c0eb97eb5fc52843e8040f68b164762f..d473dbf667ae405835a9320d2a6f37715d50277a 100644 --- a/src/UnicaenAuth/Service/ShibService.php +++ b/src/UnicaenAuth/Service/ShibService.php @@ -81,7 +81,7 @@ EOS; } elseif (isset($_SERVER['supannEmpId'])) { $id = $_SERVER['supannEmpId']; } 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; @@ -94,11 +94,34 @@ EOS; $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(); + // propriétés de UserInterface $shibUser->setId($id); $shibUser->setUsername($eppn); $shibUser->setDisplayName($displayName); $shibUser->setEmail($mail); + $shibUser->setPassword(null); + // autres propriétés + $shibUser->setNom($surname); + $shibUser->setPrenom($givenName); + $shibUser->setCivilite($civilite); return $shibUser; }