经过一番搜索,我成功安装了Authority-l4包以用于我的Laravel项目。文档清晰但很小(没有太多信息/示例)。这就是我的配置文件看起来像atm:
return array[
'initialize' => function($authority) {
$user = $authority->getCurrentUser();
$authority->addAlias('manage', ['create', 'read', 'update', 'delete']);
if($user->hasRole('admin')) {
//Admin can manage all resources
$authority->allow('manage', 'all');
}
// User can manage his own post
Authority::allow('manage', 'User', function($self, $user){
return $self->getCurrentUser()->id === $user->id;
});
// User can manage his own post
Authority::allow('manage', 'Post', function($self, $post){
return $self->getCurrentUser()->id === $post->id;
});
}
];
我对此有一些疑问:
hasRole()
,为什么不setRole()
? Role
更改为具有许多权限而不是具有许多权限的用户,这不是更好吗?可能我正在考虑这个包的困难,搜索互联网也无济于事。任何帮助表示赞赏!
答案 0 :(得分:2)
我是管理局的作者,虽然它主要是由Conar Welsh编写的,但我保留了权威-14。
权威背后的想法是它与实现无关。它真的不关心您存储数据的位置,您只需要告诉权限如何处理您的规则。阅读上面引用的自述文件部分和权威核心回购的自述文件应该能够让您大致了解它如何加载信息 - 除此之外的任何事情都由您自行决定。