ahrengot / laravel-roles-and-permissions
Laravel 的用户角色和权限
1.0.1
2024-07-15 12:46 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nesbot/carbon: ^2.63
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- spatie/laravel-ray: ^1.26
README
laravel 的角色和权限
安装
使用 composer 安装包
composer require ahrengot/laravel-roles-and-permissions
运行安装命令以发布迁移、模板、配置文件和基本测试
php artisan roles-and-permissions:install
运行迁移以向您的用户表添加 role
列。请根据需要修改此迁移。
php artisan migrate
配置您的用户模型
将 HasPermissions
特性添加到您的用户模型中,并为角色列添加枚举转换。您可以选择使用内置的 $attributes
属性添加角色的默认值。
use \Ahrengot\RolesAndPermissions\Traits\HasPermissions; use App\Enums\UserRole; class User extends Authenticatable { use HasPermissions; protected $casts = [ 'role' => UserRole::class, ]; // Optional default role protected $attributes = [ 'role' => UserRole::User, ] }
配置角色和权限
您的权限配置在 config/permissions.php
中。
用户角色定义在 App\Enums\UserRole.php
中。更新这些角色以满足您的应用需求。
权限只是简单的字符串,但此包在 App/Permissions/Permission.php
中提供了一个帮助类,用于将每个权限声明为常量。这提供了更好的编辑器支持,并有助于防止输入错误。
配置文件包含为每个用户角色定义各种权限的示例
return [ 'roles' => [ UserRole::Admin->value => [ Permission::AccessAdminPanel, Permission::CreateApiTokens, ], ], ];
用法
在 blade 中
<nav> @can(Permission::AccessAdminPanel) <a href="...">Admin panel</a> @endcan <a href="...">Other link</a> </nav>
在策略中
public function create(User $user) { return $user->can(Permission::CreatePosts); }
比较用户角色
UserRole 枚举有两个比较方法
$user->role->is(UserRole::Admin); $user->role->isNot(UserRole::Admin);
测试
composer test
更新日志
请参阅 更新日志 了解最近的变化。
致谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。