我想授予特定操作的访问权限。我有模块:特权,模型:特权,动作:索引和管理。
我这样做
class My_ACL extends Zend_Acl {
public function __construct() {
$this->addRole(new Zend_Acl_Role('admin'));
$this->add(new Zend_Acl_Resource('discussions'))
->add(new Zend_Acl_Resource("privileges"))
->add(new Zend_Acl_Resource('privileges:privilege:index'));
// another way for adding actions.
// ->add(new Zend_Acl_Resource('privileges:privilege',array('index','manage'));
$this->allow('admin', 'account')
->allow('admin', 'privileges:privilege');
}
}
当我这样做时,索引和管理操作无效?!
答案 0 :(得分:0)
您的ACL不会自动与您的控制器/操作直接绑定。如果你想要的话,你需要以这种方式进行设置。
因此,在您的请求中(可能作为插件),您需要测试当前登录用户是否可以访问您定义的资源,如果没有,请执行某些操作...
if(!$acl->isAllowed($users_role, $resource_they_want_to_access))
{
// go away, display access denied page etc
}