Commit 4ddca866 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Amélioration : réponse 403 plutôt que redirection (vers page d'auth) lorsque...

Amélioration : réponse 403 plutôt que redirection (vers page d'auth) lorsque l'utilisateur est connecté.
parent 617d3ef9
...@@ -21,15 +21,22 @@ class RedirectionStrategy extends \BjyAuthorize\View\RedirectionStrategy ...@@ -21,15 +21,22 @@ class RedirectionStrategy extends \BjyAuthorize\View\RedirectionStrategy
{ {
$request = $event->getRequest(); $request = $event->getRequest();
$router = $event->getRouter(); $router = $event->getRouter();
$sl = $event->getApplication()->getServiceManager();
$authService = $sl->get('Zend\Authentication\AuthenticationService'); //'zfcuser_auth_service'
$unauthStrategy = $sl->get('BjyAuthorize\View\UnauthorizedStrategy'); /* @var $unauthorizedStrategy UnauthorizedStrategy */
// en cas de requête AJAX, on délègue à la stratégie Unauthorized (revoi d'une réponse 403)
if ($request->isXmlHttpRequest()) { if ($request->isXmlHttpRequest()) {
$sl = $event->getApplication()->getServiceManager(); return $unauthStrategy->onDispatchError($event);
$unauthorizedStrategy = $sl->get('BjyAuthorize\View\UnauthorizedStrategy'); /* @var $unauthorizedStrategy UnauthorizedStrategy */ }
$unauthorizedStrategy->onDispatchError($event);
return; // si une identité authentifiée est disponible, pas besoin de se réauthentifier :
// on délègue donc à la stratégie Unauthorized (réponse 403)
if ($authService->hasIdentity()) {
return $unauthStrategy->onDispatchError($event);
} }
// cuisine nécessaire pour ajouter en paramètre GET l'URL demandée avant redirection vers la page d'authentification
if (null === $this->redirectUri) { if (null === $this->redirectUri) {
if (($uri = $router->getRequestUri()) && $uri->getPath()) { /* @var $uri \Zend\Uri\Uri */ if (($uri = $router->getRequestUri()) && $uri->getPath()) { /* @var $uri \Zend\Uri\Uri */
$this->redirectUri = $router->assemble(array(), array( $this->redirectUri = $router->assemble(array(), array(
...@@ -38,6 +45,7 @@ class RedirectionStrategy extends \BjyAuthorize\View\RedirectionStrategy ...@@ -38,6 +45,7 @@ class RedirectionStrategy extends \BjyAuthorize\View\RedirectionStrategy
} }
} }
parent::onDispatchError($event); // délégation à la stratégie standard de redirection vers la page d'authentification
return parent::onDispatchError($event);
} }
} }
\ No newline at end of file
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