tshevchenko / rbac
基于角色的访问控制
dev-main
2024-05-15 19:26 UTC
Requires
- php: ^8.1
- tshevchenko/installer: dev-main
This package is not auto-updated.
Last update: 2024-10-02 20:16:14 UTC
README
基于角色的访问控制
安装
composer require tshevchenko/rbac
迁移
运行迁移以在数据库中创建表
php artisan migrate
所需的环境常量
RBAC_SUPER_ADMIN_EMAIL- Seed 用于分配 超级管理员 角色的超级管理员电子邮件。RBAC_USER_MODEL- 用户模型的完全限定类名(《App\Models\User》)
配置
发布配置文件
php artisan vendor:publish --tag=rbac-config
设置简要说明
storage- 可以为db或config。在db的情况下,权限将存储在数据库中。在config的情况下,权限将从该配置文件的permissions属性中获取。对于拥有少量受保护部分的小项目来说可能很方便。super_admin_email- 查看 ENVRBAC_SUPER_ADMIN_EMAILuser_model- 查看 ENVRBAC_USER_MODELsuper_admin_role_id- 超级管理员 角色的角色 ID。此角色授予无需额外检查的访问权限。permissions- 权限数组。每个数组元素必须包含role_id和action'permissions' => [ [ 'role_id' => 4, 'action' => 'App\Http\Controllers\ProfileController@edit', ], ],excluded_actions- 当更新rbac_actions表时将被排除的路由数组。'excluded_actions' => [ 'generated::', 'ignition.', 'sanctum.', ],
特性
在您的用户模型中使用 Tshevchenko\Rbac\Models\Traits\RbacTrait。
命令
使用命令 rbac:actions-update 更新 rbac_actions 表。这将根据现有的路由更新表。在向应用程序添加新路由后始终使用此命令。
种子
种子数据创建了 4 个访问角色以展示功能。
- 超级管理员,可以访问所有受保护部分,不会检查特定操作的权利。
- 管理员、经理、用户 - 作为示例创建,用户 角色分配给所有现有用户。
php artisan db:seed --class=Tshevchenko\\Rbac\\Database\\seeders\\RoleSeeder