zareismail/nova-trust

A Laravel Nova 工具,基于 `laratrust` 包的 `ACL`。

0.3.0 2020-09-08 04:17 UTC

This package is auto-updated.

Last update: 2024-09-08 13:49:17 UTC


README

Nova Trust 是一个基于 Laratrust 的包;一个提供用户 ACL 的 Laravel 包。

安装

使用 Composer 在 Laravel Nova 项目中安装此包

composer require zareismail/nova-trust

发布 nova-trust 发布文件

php artisan vendor:publish --tag="nova-trust"

此命令将 viewsconfiglang 和数据库 migrations 发布到兼容路径。您也可以通过以下命令分别发布

php artisan vendor:publish --tag="nova-trust-config"
php artisan vendor:publish --tag="nova-trust-lang"
php artisan vendor:publish --tag="nova-trust-views"
php artisan vendor:publish --tag="nova-trust-migrations"

发布后;您应该运行数据库迁移

php artisan migrate

然后通过 NovaServiceProvidertools 方法注册此工具

// in app/Providers/NovaServiceProvider.php

public function tools()
{
    return [
        // ...
        new \NovaTrust\NovaTrust
    ];
}

最后,您应该在用户模型中插入 \NovaTrust\Concerns\InteractsWithNovaTrust 特性

配置

配置文件

在您的 config/nova-trust.php 文件中,您将找到所有可以定制的包配置

团队功能

如果您想使用团队功能;该功能允许您根据团队将 rolespermissions 绑定到用户,您必须在 config/nova-trust.php 文件中将 teams_strict_check 键值更改为 true

多个用户资源

config/nova-trust.php 文件中,您将找到一个 user_resources 数组,它包含有关多个用户资源以及 Role 和 Permission 模型中关系的名称的信息。例如

user_resources' => [
    'users' => 'App\Nova\User',
],

开发者访问

安装后,您将看到 403 错误;为解决此问题;您可以在 user 模型中定义 isDeveloper 方法,该方法应返回 true 值;这将使用户可以访问任何内容。

定义新权限

此包使用 abilitiespolicies public methods 来定义权限。
因此,为定义新权限,您应遵循 Laravel 授权 文档。

默认情况下,存在一些用于 superior 访问的保留权限,其名称为:view AnyviewcreateupdatedeleteattachdetachforceDeleteadd

这意味着如果将一个 superior 权限附加到 roleuser;用户将有权执行所有模型的操作。例如;当将 create 权限附加到用户时;用户可以创建 任何内容

此外,还存在一些 ownership 权限,将其中之一附加到用户只会使用户有权访问自己的资源。例如,当将 updateOwn 权限附加到用户时,它只能更新创建的资源。

许可

Nova Trust 是开源软件,许可协议为 MIT 许可