【发布时间】:2011-08-17 12:32:32
【问题描述】:
Zend_Acl 默认情况下不允许每个角色对每个资源的每个特权,直到或除非 他们是特别允许的。 在我的系统中,用户可以拥有许多角色,并且权限被分配给这些角色。 我只是让所有用户角色遍历所有角色并检查 isAllowed() 以获得每个角色的给定资源和权限。
例如,如果当前资源是 'foo' 而权限是 'bar'
public function checkAllow($roles, $resouse, $privilege)
{
foreach ($roles as $role) {
if ($acl->isAllowed($role, 'foo', 'bar') === true)
return true;
}
return false;
}
现在我想对这些角色实施排序顺序,即分配的第一个角色将有更多的偏好,然后是第二个,依此类推。
问题来了,我如何检测对某些角色的特定拒绝,例如
$this->deny('member','foo','bar');
在遍历所有角色时,我如何知道给定角色被明确“拒绝”?
所以到那时我可以跳出foreach循环并返回false。
【问题讨论】:
标签: php zend-framework jquery-ui-sortable acl zend-acl