Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai plusieurs contrôleurs que j'aimerais protéger avec un accès authentifié. Existe-il une autre méthode plus facile que d'ajouter la fonction suivante dans chaque contrôleur?
function preDispatch()
{
$auth = Zend_Auth::getInstance();
if (!$auth->hasIdentity()) {
$this->_redirect(’auth/login’);
}
}
Et si oui, est ce que on peut utiliser un plugin ou un helper ?
Merci pour votre réponse.
Hors ligne
Il suffit de créer un controller avec ta fonction preDispatch et de l'étendre à chaque fois que tu as besoin d'un controller "protégé".
La solution est dans le langage PHP, pas le framework cette fois .
Hors ligne
Hello,
Ça, c'est le cas typique d'un plugin :
class Mp_Controller_Plugin_Auth extends Zend_Controller_Plugin_Abstract { // Pq attendre le predispatch pour l'authentification ? // (ceci n'est pas vrai pour les ACLs) public function dispatchLoopStartup (Zend_Controller_Request_Abstract $requete) {} }
A+
Hors ligne
Je suis pour le plugin aussi
Hors ligne
Ma question maintenant est la suivante.Comment faire un redirect depuis un plugin, comme dans l'exemple
class Mp_Controller_Plugin_Auth extends Zend_Controller_Plugin_Abstract
{
// Pq attendre le predispatch pour l'authentification ?
// (ceci n'est pas vrai pour les ACLs)
public function dispatchLoopStartup (Zend_Controller_Request_Abstract $requete)
{
$auth = Zend_Auth::getInstance();
if (!$auth->hasIdentity()) {
$this->_redirect(’auth/login’);
}
}
}
Merci à vous
Dernière modification par mkouri (27-08-2008 13:45:54)
Hors ligne
Tu ne fais pas de redirect, tu changes le module/controller/action demandé grace à l'objet $requete
dit moi, tu as lu la doc ??
Hors ligne
Hello,
+1
Moi aussi je change la requête.
A+
Hors ligne
Merci pour vos réponses, j'ai trouvé la solution grâce à vous. J'ai ajouté dans mon plugin la commande $request->setControllerName('index');
Hors ligne