Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/05/2010, 11:02
niewpendejo
 
Fecha de Ingreso: agosto-2009
Mensajes: 138
Antigüedad: 15 años, 4 meses
Puntos: 0
Zend_Controller_Request_Abstract ayuda

Hola estoy intentando hacer un Acl y un Auth , pero cuando hago la comprobacion e intento redireccionar dice :

Parece que no encuentra la pagina.
La página no está redirigiendo adecuadamente

He buscado y probado y parece que el erro me lo da aqui en:

$request->setControllerName('authentication')
->setActionName('login');

Si comento y hago un echo , el echo se muestra pero no redirecciona.

Mi plugin es el siguiente.
Código PHP:
class Plugin_AccessCheck extends Zend_Controller_Plugin_Abstract{

    private 
$_acl null;
    private 
$_auth null;

    public function  
__construct(Zend_Acl $aclZend_Auth $auth) {

        
$this->_acl  $acl;
        
$this->_auth $auth;
    }

    public function 
preDispatch(Zend_Controller_Request_Abstract $request){

        
$resource $request->getControllerName();
        
$action $request->getActionName();

        
$identity $this->_auth->getStorage()->read();
        
$role $identity->role;

        if(!
$this->_acl->isAllowed($role,$resource,$action)){
            
$request->setControllerName('authentication')
                     ->
setActionName('login');

             echo 
"a";
        }
    }


Mi Acl es :

Código PHP:
class Model_LibraryAcl extends Zend_Acl{

    public function  
__construct() {

        
$this->add(new Zend_Acl_Resource('index'));

        
$this->add(new Zend_Acl_Resource('book'));
        
$this->add(new Zend_Acl_Resource('edit'),'book');
        
$this->add(new Zend_Acl_Resource('add'),'book');

        
$this->add(new Zend_Acl_Resource('books'));
        
$this->add(new Zend_Acl_Resource('list'),'books');


        
$this->addRole(new Zend_Acl_Role('users'));
        
$this->addRole(new Zend_Acl_Role('admin','users'));

        
        
$this->allow('users','index');
        
$this->allow('users','books','list');
        
$this->allow('admin','book','edit');
        
$this->allow('admin','book','add');

    }

Y el Bootstrap es:
Código PHP:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function 
_initAutoload(){

      
$modelLoader = new Zend_Application_Module_Autoloader(array('namespace'=>'',
                                                                     
'basePath'=> APPLICATION_PATH));


      
$acl = new Model_LibraryAcl;
      
$auth Zend_Auth::getInstance();

      
$fc Zend_Controller_Front::getInstance();
      
$fc->registerPlugin(new Plugin_AccessCheck($acl,$auth));

      return 
$modelLoader;
    }


Donde puede estar el error. Muchas gracias