为不同模块设置不同的访问权限

时间:2011-04-17 07:02:22

标签: zend-framework module acl

我想为不同的模块设置不同的访问权限。

我试过了

$this->allow($role, $module, $controller, $action);

$this->allow($role, $module . ':' . $controller, $action);

但这似乎不起作用。

任何想法??

1 个答案:

答案 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