Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour a tous,
j'ai fait un plugin controller qui verifie si l'utilisateur actuellement connecté a les droits necessait pour afficher l'action controller.
Mon problème est que lorsqu'il n'as pas les droits j'affiche une exception mais il m'exécute quand même mon action.
Pour l'instant le seul moyen que j'ai trouvé pour evité ca est de definir le controller et l'action a vide dans le plugin.
le plugin :
class Plugin_Acl extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request){ $auth = Zend_Auth::getInstance(); if($auth->hasIdentity()){ $id = $auth->getIdentity()->contact_id; $acl = new Model_Droits_Acl(); $user = new Model_Contacts(); $droitsUser = $user->getDroits($id); $controller = $request->getControllerName(); $action = $request->getActionName(); if($acl->has($controller)){ foreach($droitsUser as $droit){ if($acl->isAllowed($droit->droits_libelle, $controller, $action)){ $isAllow = true; break 1; }else{ $isAllow = false; } } if(!$isAllow){ $request->setControllerName(''); //definition controller vide $request->setActionName(''); Zend_Layout::getMvcInstance()->disableLayout(); throw new Zend_Acl_Exception("Resource '$controller' n'est pas accessible"); } } } } }
Dernière modification par jfrag (23-11-2009 16:33:39)
Hors ligne
Bon je m'embête pour rien j'ai créer une action specifique dans mon controller error et je l'appel dans mon plugin.
Problème résolu.
PS : si vous voulez des infos sur la mise en plac d'un plugin de gestion des acl posté un message ici je vous répondrez.
Dernière modification par jfrag (23-11-2009 16:34:41)
Hors ligne
Pages: 1