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 $acl, Zend_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