Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai une application avec deux modules (celui par défaut et un autre module1).
Pour le moment, dans mon module par défaut, j'utilise le Zend_Auth_Adapter_DbTable et qui ne me pose pas de souci particulier, redirect sur page de login quand $auth->authenticate() retourne false.
Dans le module1, je voudrais par contre, utiliser le Zend_Auth_Adapter_Digest ou le Zend_Auth_Adapter_Http. Et là, je rencontre quelques soucis. Tout le module devant être protégé, j'ai créé une classe controller de base et dans le preDispatch, je réalise le authenticate. Si c'est bon tout va bien, mais dans le cas contraire, je n'arrive pas à arrêter le processus de dispatch (l'action initial est executée) et mes actions dans l'actionstack se réalise ainsi que le rendu du layout (j'utilise Zend_Layout).
Hors, je fais
if(!$result->isValid()) { $this->helper->viewRenderer->setNeverRender(true); $this->_request->setControllerName("auth")->setActionName("acl")->setDispatched(true); } }
Suite à ces premiers pas, avec un module supplémentaire, je me pose plusieurs questions:
* Peut-on avoir des actionstacks par module (les actions du module par défaut, ne sont pas forcément les mêmes pour tout les modules. Même question avec des plugins même si je m'en suis jamais servi.
* Comment faire pour que le Layout ne se rende pas, pour le moment je fais un die() mais ça n'envoie pas les header pour l'authentifcation http.
* Est-ce la meilleur méthode que d'avoir fait une classe de base avec la gestion de l'authentification dans le preDispacth. Ailleurs, cette gestion est faite dans le bootstrap mais je ne veux pas que ça soit pour tout les modules.
Merci pour votre aide
cortex
Hors ligne
Quelques éléments de réponse :p
$this->_helper->layout->disableLayout();
Voilà qui permet de ne plus faire le rendering du layout. Fallait juste lire la doc :p
Ensuite, me suis emmelé les crayons avec les plugins et les controller_action, il faut utiliser un _forward dans le controller_action et pas la méthode utilisé par un plugin qui consiste à redefinir la route et dire que y'a pas eu de dispatch.
Voilà, je reste quand même sur la question du, est-ce possible que les actions que l'on pousse par l'action stack soit par module ? quitte à toutes les définir dans le bootstrap et qu'il y ait filtre après coup ?
Hors ligne
J'ai lu ton post en diagonale donc excuse moi si je me trompe mais apparemment ton souci est au niveau des droits sur l'accès à un module, c'est bien ça ? Si c'est le cas, pourquoi n'utilises-tu pas les Zend_ACL qui sont fait pour ça ?
Hors ligne
En fait, je n'utilise pas de gestion de droit, j'ai juste besoin que mon user soit authentifié.
Hors ligne