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 许可。