我想为不同的模块设置不同的访问权限。
我试过了
$this->allow($role, $module, $controller, $action);
或
$this->allow($role, $module . ':' . $controller, $action);
但这似乎不起作用。
任何想法??
答案 0 :(得分:3)
要正确设置acl,您需要定义角色,资源和权限。
E.g。
$this->addRole(new Zend_Acl_Role('guests'));
$this->add(new Zend_Acl_Resource('default'))
->add(new Zend_Acl_REsource('default:index'), 'default');
$this->allow('guests', 'default:index', array('index', 'error'));
这是一个基于模块的结构。首先,您要定义一个角色。然后定义默认的模块资源。 Index是IndexController。最后,您设置guest类型的用户应该能够作为数组访问的操作。
你问题中的第二行代码似乎没问题,所以其他任何地方都可能存在问题。查看一些资源:
文档:Zend_Acl
如何:Zend Framework 1.8 tutorial 5 zend_acl with zend_auth and controller plugin