marksihor/laravel-permissions

Laravel 权限管理。

dev-master 2023-03-23 12:52 UTC

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
  1. 将以下行添加到 Kernel.php 文件中的 $routeMiddleware 数组
    'permission' => \MarksIhor\LaravelPermissions\Http\Middleware\PermissionMiddleware::class,
  1. 将角色关系添加到您的用户模型
public function role()
{
    return $this->belongsTo('MarksIhor\LaravelPermissions\Models\Role');
}
  1. 在路由中使用它,如下所示
Route::get('/', 'UserController@index')->middleware('permission:view users');
  1. 或在其他位置,如下所示
app('auth')->user()->role->hasPermission($permissionName); // bool

许可证

MIT