PHP的部分访问控制
是否有任何库/解决方案提供对资源的部分访问?这样的权限控制是如何调用的 大多数ACL库完全允许/拒绝操作:PHP的部分访问控制,php,permissions,acl,Php,Permissions,Acl,是否有任何库/解决方案提供对资源的部分访问?这样的权限控制是如何调用的 大多数ACL库完全允许/拒绝操作: user.create user.update 用户。显示 但如果应该有“部分”许可怎么办。 比如: 您只允许查看角色为来宾或主持人的活动用户 您可以使用角色设计器编辑用户,但只能编辑其电话和邮件 第一个示例可能如下所示: 许可: user.show 特权: status=>active && 角色=>嘉宾| |主持人 第二点: 许可: user.edit 特权: editable=>电
user.create
user.update
用户。显示
但如果应该有“部分”许可怎么办。
比如:
user.show
特权:
status=>active
&&
角色=>嘉宾| |主持人
第二点:
许可:
user.edit
特权:
editable=>电话、邮件
更新:
为了让我的问题更清楚,我添加了这个用法示例,以展示(在我的想法中)它可能是什么样子
// global access
if($user->can('user.show')){
// get the privileges provided by the permissions
$filter = $user->getPrivilegesFor('user.show');
// use the privileges to filter the (database)query
// (using the example above the filter should restrict to active guests and moderators)
$result = $repo->getUsers($filter);
}else{
// access denied
}
// use the result to fill the view
据我所知,在大多数库中,您可以选择扩展该类。因此,您可以像用户一样扩展类
class myuser extends user{
通过这种方式,您可以为来宾或版主提供您想要的任何角色或权限。您可以使用Codeigniter、Zend和许多其他优秀的框架。使用Zend Framework 2,您将拥有
ZfcUser
模块,该模块可以与bjyauthorize
模块耦合。通过一些配置,您将获得所需的信息。似乎我没有举一个好的例子。我的问题不是为用户提供一个角色,我正在寻找一个权限库,它允许一种比只允许或拒绝一个操作更不同的方法。在我的示例中,有一个权限,允许显示处于活动状态且属于角色guest或moderator的用户。可能还有另一个允许查看非活动女性用户的权限,等等。还没有使用Zend 2,但是这个模块看起来比基本的Zend ACL更有希望。你可以为你需要提供的用户和内容定义细粒度的权限。使用它非常方便。