Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-11-2012 11:43:41

jmleroux
Membre
Lieu: Nantes
Date d'inscription: 14-11-2012
Messages: 32
Site web

Redirection depuis le module

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.


Code:

[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

 

#2 20-11-2012 18:09:38

Bouks
Membre
Lieu: Paris
Date d'inscription: 31-08-2012
Messages: 241

Re: Redirection depuis le module

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 :

Code:

[lang=php]return $this->redirect()->toRoute('maroute');

22914720

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages