marksihor / laravel-permissions
Laravel 权限管理。
dev-master
2023-03-23 12:52 UTC
Requires
- php: ^7.4|^8.0
This package is auto-updated.
Last update: 2024-09-14 15:27:09 UTC
README
Laravel 角色和权限管理包。
安装
$ composer require marksihor/laravel-permissions -vvv
迁移
这一步是可选的,如果您想自定义表格,可以发布迁移文件
$ php artisan vendor:publish --provider="MarksIhor\\LaravelPermissions\\PermissionsServiceProvider" --tag=migrations
配置
要发布配置,请运行以下命令
$ php artisan vendor:publish --provider="MarksIhor\\LaravelPermissions\\PermissionsServiceProvider" --tag=configs
控制器
这一步是可选的,如果您想获取 CRUD 控制器(而不是使用内置路由),请运行以下命令
$ php artisan vendor:publish --provider="MarksIhor\\LaravelPermissions\\PermissionsServiceProvider" --tag=controllers
如果您已发布控制器,请将路由添加到您的路由文件中
Route::group(['as' => 'roles', 'prefix' => 'roles'/*, 'middleware' => 'permission:view roles'*/], function () { Route::get('/', 'RoleController@index'); Route::get('/{model}', 'RoleController@show'); Route::get('/{model}/permissions', 'RoleController@permissions')/*->middleware('permission:view roles')*/; Route::post('/', 'RoleController@store')/*->middleware('permission:create roles')*/; Route::patch('/{model}', 'RoleController@update')/*->middleware('permission:update roles')*/; Route::delete('/{model}', 'RoleController@delete')/*->middleware('permission:delete roles')*/; Route::patch('/{model}/permissions/{action}', 'RoleController@updatePermissions') ->where('action', '(attach|detach|update)') /*->middleware('permission:update roles')*/; });
用法
1. 运行迁移
php artisan migrate
- 将以下行添加到 Kernel.php 文件中的 $routeMiddleware 数组
'permission' => \MarksIhor\LaravelPermissions\Http\Middleware\PermissionMiddleware::class,
- 将角色关系添加到您的用户模型
public function role() { return $this->belongsTo('MarksIhor\LaravelPermissions\Models\Role'); }
- 在路由中使用它,如下所示
Route::get('/', 'UserController@index')->middleware('permission:view users');
- 或在其他位置,如下所示
app('auth')->user()->role->hasPermission($permissionName); // bool
许可证
MIT