diff --git a/src/UnicaenAuth/Service/AuthorizeService.php b/src/UnicaenAuth/Service/AuthorizeService.php index 47f837be7e379a7fb10235d9f13c8027c53f807e..44eb495e4fbd97e6b9fdb2295b8d2221bdf7d2ac 100644 --- a/src/UnicaenAuth/Service/AuthorizeService.php +++ b/src/UnicaenAuth/Service/AuthorizeService.php @@ -47,7 +47,18 @@ class AuthorizeService extends \BjyAuthorize\Service\Authorize $this->loaded && $this->loaded->__invoke(); if ($this->loading) return 'bjyauthorize-identity'; - return $this->getServiceUserContext()->getSelectedIdentityRole(); + // on retourne par défaut le rôle sélectionné + $role = $this->getServiceUserContext()->getSelectedIdentityRole(); + if ($role) return $role; + + $roles = $this->getIdentityProvider()->getIdentityRoles(); + // sinon, si on est uniquement authentifié et que user est défini, on retourne le rôle user + if (isset($roles['user'])) return $roles['user']; + // sinon, si guest est défini alors on retourne guest + if (isset($roles['guest'])) return $roles['guest']; + + // sinon rien du tout!! + return null; }