zareismail / nova-trust
A Laravel Nova 工具,基于 `laratrust` 包的 `ACL`。
Requires
- php: >=7.1.0
- santigarcor/laratrust: ^6.0
README
Nova Trust 是一个基于 Laratrust 的包;一个提供用户 ACL 的 Laravel 包。
安装
使用 Composer 在 Laravel Nova 项目中安装此包
composer require zareismail/nova-trust
发布 nova-trust 发布文件
php artisan vendor:publish --tag="nova-trust"
此命令将 views、config、lang 和数据库 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
然后通过 NovaServiceProvider 的 tools 方法注册此工具
// in app/Providers/NovaServiceProvider.php public function tools() { return [ // ... new \NovaTrust\NovaTrust ]; }
最后,您应该在用户模型中插入 \NovaTrust\Concerns\InteractsWithNovaTrust 特性
配置
配置文件
在您的 config/nova-trust.php 文件中,您将找到所有可以定制的包配置
团队功能
如果您想使用团队功能;该功能允许您根据团队将 roles 和 permissions 绑定到用户,您必须在 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 值;这将使用户可以访问任何内容。
定义新权限
此包使用 abilities 和 policies public methods 来定义权限。
因此,为定义新权限,您应遵循 Laravel 授权 文档。
默认情况下,存在一些用于 superior 访问的保留权限,其名称为:view Any、view、create、update、delete、attach、detach、forceDelete、add。
这意味着如果将一个 superior 权限附加到 role 或 user;用户将有权执行所有模型的操作。例如;当将 create 权限附加到用户时;用户可以创建 任何内容。
此外,还存在一些 ownership 权限,将其中之一附加到用户只会使用户有权访问自己的资源。例如,当将 updateOwn 权限附加到用户时,它只能更新创建的资源。
许可
Nova Trust 是开源软件,许可协议为 MIT 许可。