Este Plugin lo que hace es obtener los roles y recursos y luego crea los permisos para almacenarlos en memoria
Código PHP:
class Aclwh extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request) {
$acl = new Zend_Acl();
$menus = new MenuRepository();
$menus = $menus->getMenuacl();
for($i = 0 ; $i < count($menus); $i++ ){
$acl->addResource(new Zend_Acl_Resource($menus[$i]['module']));
}
$roles = new RolesRepository();
$roles = $roles->getRolesacl();
for($i = 0 ; $i < count($roles); $i++ ){
$acl->addRole(new Zend_Acl_Role($roles[$i]['name']));
}
$rolresource = new PermisosRepository();
$rolresource = $rolresource->getRoleresourceacl();
for($i = 0 ; $i < count($rolresource); $i++ ){
$acl->allow($rolresource[$i]['role_name'], $rolresource[$i]['resource_name']);
}
// return $acl->isAllowed('logistic', 'menu') ? 'si' : 'no';
return $acl;
}
}
Código PHP:
public function preDispatch() {
$auth = Zend_Auth::getInstance();
$role = new HistousuarioRepository();
$id = $auth->getIdentity();
$role = $role->getRole($id['id']);
$module = $this->getRequest()->getModuleName();
$acl = new ApplicationHelpersAclwh();
echo $acl->isAllowed($role, $module) ? 'si' : 'no';
if (! $auth->hasIdentity() ) {
return $this->_redirect('/login');
}
}
Fatal error: Call to undefined method Application\Helpers\Aclwh::isAllowed() in C:\xampp\htdocs\bcbtram\application\modules\menu\c ontrollers\IndexController.php on line 95
y con justa razon, intente que me devolviera true y false, pero tampoco funciona, cómo haría para que me devuelva el resultado? o mejor aún si existe otra forma de realizar los permisos.