jhonoryza / filament-simple-role-permission
角色和权限的filament脚手架
0.0.4
2024-08-27 06:50 UTC
Requires
- php: ^8.2
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
README
此包是简单的角色和权限的filament脚手架,提供filament资源、模型、迁移、seeder和政策生成器
截图
ERD
需求
- PHP >= 8.2
- Laravel >= 10.0
- Filament >= 3.0
安装
您可以通过composer安装此包
composer require --dev jhonoryza/filament-simple-role-permission
然后运行以下命令以发布脚手架
php artisan filament-simple-role-permission:install
然后您可以迁移数据库
php artisan migrate
编辑 app\Models\User.php
添加 HasRole
特性和 预定义角色
use App\Models\Concern\HasRole; class User extends Authenticatable { use HasRole; const SUPER = 'super-admin'; const ADMIN = 'admin'; public static function getPredefined(): array { return [ self::SUPER, self::ADMIN, ]; } protected $fillable = [ // ... etc 'role_id', ] }
const SUPER
在 UserSeeder
类中使用
然后使用一些默认的角色和权限进行种子
php artisan db:seed --class=PermissionSeeder php artisan db:seed --class=RoleSeeder php artisan db:seed --class=UserSeeder
然后根据Permission模型中的预定义
权限在app\Policies
目录中生成所有策略文件
php artisan policy:generate
配置
您可以通过调整Permission
模型类中的function getPredefined()
和function match()
来配置预定义权限
public static function getPredefined(): array { return [ 'users' => [ 'view-any', 'view', 'create', 'update', 'delete', 'bulk-delete', ], 'roles' => [ 'view-any', 'view', 'create', 'update', 'delete', 'bulk-delete', ], 'permissions' => [ 'view-any', 'view', 'create', 'update', 'delete', 'bulk-delete', ], ]; } public static function match($permission): string { return match ($permission) { 'view-any' => 'viewAnyPermission', 'view' => 'viewPermission', 'create' => 'createPermission', 'update' => 'updatePermission', 'delete' => 'deletePermission', 'bulk-delete' => 'bulkDeletePermission', default => '', }; }
发布策略存根
自定义策略类模板
php artisan vendor:publish --tag="simple-role-permission-stubs"
安全
如果您发现任何与安全相关的问题,请创建一个问题。
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。