使用Zend_Acl时,只对特定模块/控制器/操作进行权限检查...现在,当我有页面的自定义URL时,并非所有页面都有自己的mdouel / controller / action。我希望人们看到一些页面,但不是全部,Zend_Acl没有办法做到这一点,对吗? 那么我应该为页面创建一个新的权限系统吗?
答案 0 :(得分:1)
Zend_Acl
将处理访问控制所需的一切。您的工作是定义资源和特权。这意味着您可以为任何请求添加权限。听起来你有一个ACL算法,你从ZF手册或其他一些地方在线复制,你试图坚持,就好像它是一个标准。 Zend_Acl从不说你必须坚持他们的方法。
现在,你的问题。由于每个页面都有相同的module/controller/action
,因此您应将其视为一个资源,然后您可以根据您提到的自定义网址的参数定义页面级权限。
简单地说,你可以这样做:
$acl->allow('role', 'Module:Controller:Action', array('UrlParams'));
不要忘记,Zend_Acl::allow
是基于资源和权限的非module/controller/action
。见下文:
$acl->allow('role','resource',array('privileges'));
答案 1 :(得分:0)
因此,请检查所有控制器操作的权限:
$this->allow('userGroup', 'controller');
以这种方式只检查权限并专门检查单个控制器操作:
$this->allow('userGroup', 'controller', 'action');
我希望查看帮助