Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-12-2009 16:34:29

jean
Membre
Date d'inscription: 25-08-2008
Messages: 107

[1.9] [résolu] Plugin de controle des ACL

Je rencontre une difficulté avec le plugin qui valide l'accès aux ressources :
- j'essaie d'accéder à module/controlleur/action = admin/index/index 
- le plugin s'exécute
- l'autorisation Zend_Auth est valide
- le controle des ACL échoue (normal, je n'ai pas le droit d'accès)
=> je redirige donc vers module/controlleur/action = public/index/index
        $request->setModuleName($module) ;
        $request->setControllerName($controller) ;
        $request->setActionName($action) ;

Or, je me retrouve en admin/index/index !!!
C'est comme si le _redirect effectué était écrasé.

J'ai vérifié que je n'ai aucun  post"quelquechose" qui s'exécute après.

Le fait de "fermer" les scripts php par "?>" peut-il etre une cause ?

Auriez-vous des idées / pistes à me proposer ?

Merci par avance,

Jean

PS : voici le dump de $request en fin de plugin

Code:

object(Zend_Controller_Request_Http)#77 (14) {
  ["_paramSources:protected"] => array(2) {
    [0] => string(4) "_GET"
    [1] => string(5) "_POST"
  }
  ["_requestUri:protected"] => string(12) "/admin/index"
  ["_baseUrl:protected"] => string(0) ""
  ["_basePath:protected"] => NULL
  ["_pathInfo:protected"] => string(12) "/admin/index"
  ["_params:protected"] => array(3) {
    ["module"] => string(5) "admin"
    ["controller"] => string(5) "index"
    ["action"] => string(5) "index"
  }
  ["_aliases:protected"] => array(0) {
  }
  ["_dispatched:protected"] => bool(true)
  ["_module:protected"] => string(6) "public"
  ["_moduleKey:protected"] => string(6) "module"
  ["_controller:protected"] => string(5) "index"
  ["_controllerKey:protected"] => string(10) "controller"
  ["_action:protected"] => string(5) "index"
  ["_actionKey:protected"] => string(6) "action"
}

Dernière modification par jean (10-12-2009 13:31:08)

Hors ligne

 

#2 09-12-2009 20:54:41

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: [1.9] [résolu] Plugin de controle des ACL

Pourquoi n'utilises-tu pas la méthode protégé _redirect(), du défini dans le Zend_Controller_Action ?

Ton plugin devrait agir en preDispatch(), donc en effectuant une redirection les plugins en postDispatch() ne sont pas tout de suite lancé.

Hors ligne

 

#3 10-12-2009 10:45:06

jean
Membre
Date d'inscription: 25-08-2008
Messages: 107

Re: [1.9] [résolu] Plugin de controle des ACL

Merci pour cette piste.

Je pensais que dans un plugin en preDispatch, lorsque l'on modifiait $request avec les méthodes setModuleName, setControllerName, setActionName, cela effectuait un _redirect() vers le module/controller/action cible.

Cela n'a pas l'air de fonctionner comme çà. Vous confirmez ?

Je sais faire un _redirect() dans une action, mais comment le faire dans un plugin en preDispatch ?

Hors ligne

 

#4 10-12-2009 13:34:10

jean
Membre
Date d'inscription: 25-08-2008
Messages: 107

Re: [1.9] [résolu] Plugin de controle des ACL

Honte à moi !

Je faisais confiance à l'URL indiquée dans le navigateur :

Le module/controller/action demandé reste affiché alors que la requête a bien été redirigée vers le module/controller/action cible ...

Ouf  !!!!

Hors ligne

 

#5 10-12-2009 18:29:53

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: [1.9] [résolu] Plugin de controle des ACL

ce n'est pas une redirection au sens propre... tu reste sur la même page, mais tu affiches une autre action. Ça doit poser problème pour nos cher moteur de recherche wink

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