Zend framework 对操作和页面的权限

Zend framework 对操作和页面的权限,zend-framework,permissions,Zend Framework,Permissions,使用Zend_Acl时,仅对特定模块/控制器/操作进行权限检查。。。现在,当我为页面定制URL时,并不是所有页面都有自己的mdouel/controller/action。我希望人们看到一些页面,但不是所有页面,Zend_Acl无法做到这一点,对吗? 那么,我是否应该为这些页面创建一个新的权限系统?因此,请检查所有控制器操作的权限: $this->allow('userGroup', 'controller'); 以这种方式,只检查单个控制器操作的权限: $this->allow(

使用Zend_Acl时,仅对特定模块/控制器/操作进行权限检查。。。现在,当我为页面定制URL时,并不是所有页面都有自己的mdouel/controller/action。我希望人们看到一些页面,但不是所有页面,Zend_Acl无法做到这一点,对吗?
那么,我是否应该为这些页面创建一个新的权限系统?

因此,请检查所有控制器操作的权限:

$this->allow('userGroup', 'controller');
以这种方式,只检查单个控制器操作的权限:

$this->allow('userGroup', 'controller', 'action');

我希望查看帮助,Zend_Acl将处理访问控制所需的一切。您的工作是定义资源和权限。这意味着您可以向任何请求添加权限。听起来好像你有一个ACL算法,你从ZF手册或其他一些在线的地方复制,你试图坚持这一点,好像它是一个标准。Zend_Acl从不说你必须坚持他们的方法

现在,谈谈你的问题。因为每个页面都有相同的
模块/控制器/操作
,所以应该将其视为一个资源,然后可以根据您提到的自定义URL的参数定义页面级权限

简单地说,您可以这样做:

$acl->allow('role', 'Module:Controller:Action', array('UrlParams'));
别忘了,
Zend_Acl::allow
是基于资源和权限的,而不是基于模块/控制器/操作的。见下文:

$acl->allow('role','resource',array('privileges'));

所有页面都具有相同的模块/控制器/操作,但在一个页面中加载了多个操作(小部件)。因此,控制器/操作的权限很简单,也很有效,但我对如何在页面级别执行此操作感到困惑。我不明白为什么所有页面都使用相同的控制器和相同的操作!:SA页面是小部件的集合。因此,必须呈现一个页面,并且必须将所有小部件转换为正确的HTML代码。所有小部件都有自己的模块/控制器/操作(作为正常的zend请求)。要处理所有窗口小部件,请求必须由一个操作处理。现在一切都清楚了,但很抱歉我帮不了你!:SNo问题:-)无论如何,谢谢你抽出时间!!