Php Zend_Acl未按广告要求工作

Php Zend_Acl未按广告要求工作,php,zend-framework,acl,Php,Zend Framework,Acl,我有一个Zend_Acl的大型实现,deny函数没有按预期工作。它没有正确继承,并且我与组之间存在未解决的冲突 在我深入研究代码之前。Zend_Acl或高级技巧是否存在任何众所周知的问题,有人想分享吗 我必须明确拒绝访问树中的所有子级,而我只希望拒绝访问一个父级 我在同一对象上有多个具有不同拒绝/允许的组。手册说明,和数组中最后添加的组是先检查。。。情况似乎并非如此,它似乎检查了最具体到最一般(null)的权限 如果我将权限放在树的根上,则当我将任何权限放在树的下一级时,它们将停止工作。对于我,

我有一个Zend_Acl的大型实现,deny函数没有按预期工作。它没有正确继承,并且我与组之间存在未解决的冲突

在我深入研究代码之前。Zend_Acl或高级技巧是否存在任何众所周知的问题,有人想分享吗

我必须明确拒绝访问树中的所有子级,而我只希望拒绝访问一个父级

我在同一对象上有多个具有不同拒绝/允许的组。手册说明,和数组中最后添加的组是先检查。。。情况似乎并非如此,它似乎检查了最具体到最一般(null)的权限


如果我将权限放在树的根上,则当我将任何权限放在树的下一级时,它们将停止工作。对于我,ACL将按预期工作。如果您这样做,它具有预期的行为: *允许所有应用程序使用默认模块 *允许管理员和超级管理员使用管理模块 *拒绝管理员的管理员模块/用户控制器 *允许超级管理员的管理模块/用户控制器


用户无法访问管理员。ASDMIN无法访问用户的管理。超级管理员可以访问一切

我在一个intranet知识库上工作,该知识库有1000个动态页面(即资源),我有大约30个组(所有级别相同,没有继承),我有空权限、查看权限和编辑权限(编辑包括创建/删除/移动等)。如果我在根目录中给出'superuses'allow(NULL)和'everyone'allow(view),然后在分支的某个地方给出'everyone'deny(NULL),那么'everyone'deny(NULL)规则之后的所有内容都会失去继承。然后,我可以在各个页面上设置权限,但继承会停止。重新排列用户所属的“组”的顺序没有任何区别。我们肯定需要查看一些代码才能发现任何问题。具体来说,运行Zend_Acl::isAllowed()方法的代码以及Acl addRole()、allow()和deny()语句的示例。