Laravel Nova Permissions 工具使用教程
项目介绍
Laravel Nova Permissions 是一个用于 Laravel Nova 的管理工具,它通过用户角色和权限(ACL)来添加访问控制。该工具包括默认的用户和角色策略,可以通过 Nova 管理面板进行管理。它使用 Silvanite\Brandenburg 包来管理用户角色,Brandenburg 因其清晰的职责分离而受到青睐。角色在数据库中定义,而权限在代码库中定义。
项目快速启动
安装
首先,通过 Composer 安装该包:
composer require silvanite/novatoolpermissions
配置
发布配置文件:
php artisan vendor:publish --provider="Silvanite\NovaToolPermissions\Providers\PackageServiceProvider"
修改 Nova 服务提供者
在 app/Providers/NovaServiceProvider.php
中,移除默认的 viewNova
门控,使用该包提供的门控:
protected function gate() {
// 空方法
}
添加角色关系
在你的用户资源中添加角色关系:
use Silvanite\NovaToolPermissions\Role;
public function fields(Request $request) {
return [
BelongsToMany::make('Roles', 'roles', Role::class),
];
}
应用案例和最佳实践
自定义权限名称
你可以通过在 nova-components/permissions/resources/lang/en.json
中放置自定义的 JSON 文件来替换默认的权限名称翻译。
使用自定义用户资源
如果你没有使用默认的 App\Nova\User
资源,可以通过发布配置文件并设置你的用户资源模型来定制。
典型生态项目
Silvanite\Brandenburg
Brandenburg 是一个用于管理用户角色的包,它与 Laravel Nova Permissions 工具一起使用,提供清晰的职责分离。角色在数据库中定义,而权限在代码库中定义。
Laravel Nova
Laravel Nova 是一个优雅的 Laravel 管理面板,它与 Laravel Nova Permissions 工具无缝集成,提供强大的用户角色和权限管理功能。
通过以上步骤,你可以快速启动并使用 Laravel Nova Permissions 工具,实现灵活的用户角色和权限管理。