我如何在 laravel 中为 spatie 包(ACL 管理)中的其他角色分配用户列表权限?

Posted

技术标签:

【中文标题】我如何在 laravel 中为 spatie 包(ACL 管理)中的其他角色分配用户列表权限?【英文标题】:How can i assign user-list permission to other roles also in laravel for spatie package(ACL Management)? 【发布时间】:2019-02-28 07:01:20 【问题描述】:

我在 Laravel 中使用 Spatie 包进行 ACL 管理,它运行良好,但我想问一个问题。如果我必须为任何用户分配用户列表权限像经理这样的角色,即使它有权限,也会产生错误。 构造函数下面的“only”属性的目的是什么,“permission:role-list”没有分配任何功能,是否有任何默认行为?

function __construct()

    $this->middleware('permission:role-list');
    $this->middleware('permission:role-create', ['only' => ['create','store']]);
    $this->middleware('permission:role-edit', ['only' => ['edit','update']]);
    $this->middleware('permission:role-delete', ['only' => ['destroy']]);

我是否应该假设我必须访问角色控制器的任何功能,而不是它必须在 Spatie 中具有角色列表权限。

如果我想错了,请指导我。

【问题讨论】:

下面列出了您问题第二部分的答案,对于您所说的第一部分会产生错误,请将错误也粘贴到描述中。 它只是告诉我它没有特定的权限如果我分配角色列表权限然后它工作顺利 【参考方案1】:

为了将中间件限制为仅控制器类上的某些方法,我们使用only

$this->middleware('permission:role-create', ['only' => ['create','store']]);

现在上面的行只在 createstore 方法上应用列出的中间件。

【讨论】:

【参考方案2】:

如果我在没有任何权限的情况下将第一个方法分配给下面的方法,则在构造函数中回答我自己的问题。

 $this->middleware('permission:role-list');

因此,如果任何角色没有此权限,则会生成错误,该角色没有此权限,并且不会检查下一个权限。

【讨论】:

以上是关于我如何在 laravel 中为 spatie 包(ACL 管理)中的其他角色分配用户列表权限?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Spatie 活动日志包。创建新活动时如何添加causer_id和causer_type?

laravel-用户活动以及模型变动日志-spatie/laravel-activitylog

如何使用 spatie/laravel-query-builder 过滤/搜索具有关系的数据? (拉拉维尔)

如何使用 laravel 8 +jetstream + spatie 为注册用户分配角色

为啥我的模型在关系子查询中看不到 spatie 权限特征方法?

Spatie / Laravel cors在生产中的问题[重复]