Bonjour,
Je viens d'implémenter une authentification au sein de mon application, et ça semble bien marcher.
le problème c'est que je dois faire un test avant l'appel de n'importe quel action,
mais c'est un petit peu couteux.
En googlant un peu, j'ai trouvé que l'utilisation des plugins résoudra le problème, mais je n'arrive pas à l'implémenter.
Voici le code du plugin :
et voici le code du fichier Bootstrap :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <?php class Application_Model_Plugins_AuthPlugin extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request) { $acl = new Application_Model_Authentication_Acl(); $identity = Zend_Auth::getInstance()->getIdentity(); $controllerName = $this->getRequest()->getControllerName(); $actionName = $this->getRequest()->getActionName(); if(Zend_Auth::getInstance()->hasIdentity()) { if ($acl->isAllowed($identity->role, $controllerName, $actionName)){ if ($identity->role == "user") $this->_helper->redirector->gotoSimple('user', 'error', null, array('code'=>"V")); elseif ($identity->role == "admin") $this->_helper->redirector->gotoSimple('user', 'error', null, array('code'=>"V")); } }else{ if ($controllerName == "admin") $this->_helper->redirector->gotoSimple('admin', 'connection', null, array()); else $this->_helper->redirector->gotoSimple('user', 'login', null, array()); } } }
j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { public function __construct($application) { $front = Zend_Controller_Front::getInstance(); $front->setControllerDirectory(APPLICATION_PATH . '/controllers') ->setRouter(new Zend_Controller_Router_Rewrite()) ->setDispatcher(new Zend_Controller_Dispatcher_Standard()) ->registerPlugin(new Application_Model_Plugins_AuthPlugin ()); $front->dispatch(); } }
Fatal error: Class 'Application_Model_Plugins_AuthPlugin ' not found in C:\wamp\www\zf-tutorial\application\Bootstrap.php on line 12
Merci d'avance pour votre aide
Bien cordialement
Partager