【问题标题】:isAllowed for a single role (not roles the role inherits)isAllowed 用于单个角色(不是角色继承的角色)
【发布时间】:2011-05-24 20:40:37
【问题描述】:
我试图找出一个角色是否可以使用 Zend Acl 显式访问资源,但是 Zend Acl 的 isAllowed 方法不仅检查角色,还检查指定角色继承的任何角色,我不关心,我只想知道自己的角色是否允许。
在某些情况下,我正在为管理员构建一个界面,以根据每个用户更改 acl 规则,因此我希望他们能够查看角色是否被明确允许、具有继承访问权限或被明确拒绝访问到资源。
【问题讨论】:
标签:
php
zend-framework
acl
【解决方案1】:
通常您从某个地方读取 ACL 的设置,比如说数据库。那是你应该看的地方。无论如何你都需要写在那里。
【解决方案2】:
我认为您以错误的方式查看 Zend_Acl。
整个系统是基于父/子的
如果您不需要父/子关系,则必须为每个角色定义每个规则:
访客可以登录
访客无法登出
用户可以登录
用户可以退出
或者您可以扩展 Zend_Acl 并创建自己的 isExplicitAllowed() 方法。