【发布时间】:2017-03-30 05:55:26
【问题描述】:
当我的项目还是 Laravel 4 时,我之前在 Laravel 中使用 Entrust 来控制 ACL,现在在 Laravel 5.2 中,Entrust 不再起作用,尤其是在路由过滤方面。
然后我找到这个包并尝试使用它,但仍然有很多问题,所以为了更简单,我将解释我使用委托时的用例:
首先我想为文章创建一个创建、查看、更新和删除的权限,在 Entrust 中我将创建像 create_article、view_article、update_article 和 delete_article 这样的权限。 但是现在在 Kodeine 中,当我创建权限时有“slug”,所以我尝试像文档中所说的那样这样做
$permUser = $permission->create([
'name' => 'article',
'slug' => [ // pass an array of permissions.
'create' => true,
'view' => true,
'update' => true,
'delete' => true
],
'description' => 'Manange article'
]);
所以从我读到的内容来看,它只是将我的所有文章权限分组到一个地方,并且每个参数查看、创建、更新、删除都有 slug。
我看到的问题是,如果我想让我的用户只能查看文章,如何根据我在那里创建的权限来做到这一点?
由于从文档中到 assignPermission 仅给出权限名称,这意味着它将包括所有 slug 并且都是真的?
所以如果我想让用户只能查看文章,我需要创建类似的东西
$permUser = $permission->create([
'name' => 'article_view',
'slug' => [ // pass an array of permissions.
'view' => true,
],
'description' => 'view article'
]);
如果我想让用户只能创建文章,那么我的意思是我需要创建
$permUser = $permission->create([
'name' => 'article_create',
'slug' => [ // pass an array of permissions.
'create' => true,
],
'description' => 'create article'
]);
那么 slug 的意义何在 - 它与角色几乎相同,但在 slug 中有参数?
【问题讨论】:
-
我已经修复了这个问题中的很多案例错误(我注意到您的回答存在同样的问题)。由于这里的帖子是为了长期读者的利益,如果在写作上花费更多的精力,我们将不胜感激。如果您是用手机写的,请在撰写问题和答案时仍然使用句子大小写 - 谢谢!