Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je cherche la façon la plus correcte d'effectuer une redirection depuis mon module pour contrôle d'accès et reroutage vers le login.
Pour cela, j'utilise l'événement MVC dans le module, mais je n'arrive pas à trouver de méthode de redirection à partir du module.
[lang=php] class Module { public function onBootstrap(MvcEvent $e) { $e->getApplication()->getServiceManager()->get('translator'); $eventManager = $e->getApplication()->getEventManager(); $this->initAcls($e); $moduleRouteListener = new ModuleRouteListener(); $moduleRouteListener->attach($eventManager); } public function initAcls($e) { $app = $e->getParam('application'); $app->getEventManager()->attach('route', array($this, 'checkAcls'), -100); } /** * * @param Zend\Mvc\MvcEvent $e */ public function checkAcls($e) { $routeMatch = $e->getRouteMatch(); if (!$routeMatch) { return; } $controller = $routeMatch->getParam('controller', false); if ($controller != 'Application\Controller\Admin') { return; } $auth = new \Application\Service\AuthenticationService(); if ($auth->hasIdentity()) { return; } // redirection vers la route 'login' // comment faire ? $router = $e->getRouter(); var_dump($router); }
d'avance merci.
Dernière modification par jml44 (14-11-2012 11:48:53)
Hors ligne
A priori (selon ton exemple) tu n'as pas besoin d'effectuer tous ces tests si l'utilisateur ne va pas dans l'admin.
Tu peux donc simplement les faire dans un controller de ton admin.
Pour la redirection, alors :
[lang=php]return $this->redirect()->toRoute('maroute');
Hors ligne