doc88 / flux-role-permission
用于在Laravel应用程序中通过权限实现访问控制的库。
1.0.2
2020-07-10 14:07 UTC
Requires
- php: >= 7.2.0
This package is auto-updated.
Last update: 2024-09-10 23:35:20 UTC
README
用于管理Laravel应用程序中用户权限的库。
要求
- Laravel >= 6.0
安装
- 在项目根目录下运行以下命令将包添加到Laravel应用程序中
composer require doc88/flux-role-permission
- 在config/app.php文件中的providers列表中添加
'providers' => [ ... Doc88\FluxRolePermission\FluxRolePermissionServiceProvider::class, ]
- 在项目根目录下运行以下命令发布新的提供者
php artisan vendor:publish
- 运行迁移
php artisan migrate
- 在您的User模型中添加以下行
use Doc88\FluxRolePermission\Traits\HasRolePermissions; class User { use HasRolePermissions; }
用法
Doc88\FluxRolePermission\Permission类
用于列出、注册、验证和撤销权限的类。
- 列出所有权限
// All Registered Permissions Permission::all(); // Return (array): [ [ "id" => 3 "name" => "List Companies" "slug" => "list-companies" ], [ "id" => 4 "name" => "Delete Companies" "slug" => "delete-companies" ] ]
- 列出权限
// Get the Permission Permission::get('list-users'); // Return (array): [ "id" => 3 "name" => "List Users" "slug" => "list-users" ]
- 创建权限
// Creating a new Permission Permission::create('create-companies'); // Return (boolean): true or false
- 删除权限
// Deleting a Permission Permission::delete('list-companies'); // Return (boolean): true or false
- 列出用户的权限
// List all the User's Permissions Permission::list($user); // Return (array): [ [ "id" => 3 "name" => "List Companies" "slug" => "list-companies" ], [ "id" => 4 "name" => "Delete Companies" "slug" => "delete-companies" ], [ "id" => 5 "name" => "Create Company" "slug" => "create-companies" ] ]
- 检查用户的权限
// Checking if the user has permission Permission::has(auth()->user(), 'list-companies'); // Return (boolean): true or false
- 将权限记录到用户
// Grants permission for the User Permission::register(auth()->user(), 'list-companies'); // Return (boolean): true or false
- 撤销权限
// Revokes permission Permission::revoke(auth()->user(), 'list-companies'); // Return (boolean): true or false
使用User模型
可以使用User类列出、注册、验证和撤销权限。
- 列出用户权限
$user = User::find(1); // User's Permissions $user->listPermissions(); // Return (array): [ [ "id" => 3 "name" => "List Companies" "slug" => "list-companies" ], [ "id" => 4 "name" => "Delete Companies" "slug" => "delete-companies" ], [ "id" => 5 "name" => "Create Company" "slug" => "create-companies" ] ]
- 检查用户权限
$user = User::find(1); // Checking if the user has permission $user->hasPermission('list-companies'); // Return (boolean): true or false
- 将权限记录到用户
$user = User::find(1); // Grants permission to the User $user->registerPermission('list-companies'); // Return (boolean): true or false
- 撤销权限
$user = User::find(1); // Revokes permission $user->revokePermission('list-companies'); // Return (boolean): true or false
Doc88\FluxRolePermission\Role类
用于列出、注册、验证和撤销角色的类。
- 列出所有角色
// All Registered Roles Role::all(); // Return (array): [ [ "id" => 3 "name" => "Companies" "slug" => "companies" ], [ "id" => 4 "name" => "Users" "slug" => "users" ] ]
- 列出角色
// Get the role Role::get('users'); // Return (array): [ "id" => 5 "name" => "Users" "slug" => "users" "permissions" => { [ 0 => array:3 [ "id" => 3 "name" => "List Users" "slug" => "list-users" ], 1 => array:3 [ "id" => 4 "name" => "Delete Users" "slug" => "delete-users" ], 2 => array:3 [ "id" => 5 "name" => "Create Users" "slug" => "create-users" ] ] } ]
- 创建角色
// Creating a new Role Role::create('Users'); // Creating a new Role with permissions Role::create('users', ['list-users', 'create-users', 'delete-users']); // Return (array): [ "id": 7, "name": "Users", "slug": "users" ]
- 更新角色
// Updating a Role Role::update('users', ['slug' => 'new-slug', 'permissions' => ['list-users', 'create-users']]); // Return (array): [ "id" => 4 "name" => "New Slug" "slug" => "new-slug" "permissions" => { [ "id" => 7 "name" => "List Users" "slug" => "list-users" ], [ "id" => 8 "name" => "Create Users" "slug" => "create-users" ] } ]
- 将权限添加到角色
// Deleting a Role Role::addPermission('sales', 'list-sales'); // Return (boolean): true or false
- 从角色中删除权限
// Deleting a Role Role::removePermission('sales', 'list-sales'); // Return (boolean): true or false
- 删除角色
// Deleting a Role Role::delete('sales'); // Return (boolean): true or false
- 列出用户的角色
// List all the User's Roles Role::list($user); // Return (array): [ [ "id" => 3 "name" => "Companies" "slug" => "companies" ], [ "id" => 4 "name" => "Sales" "slug" => "sales" ] ]
- 检查用户的角色
// Checking if the user has role Role::has(auth()->user(), 'companies'); // Return (boolean): true or false
- 将角色记录到用户
// Grants role for the User Role::register(auth()->user(), 'companies'); // Return (boolean): true or false
- 撤销角色
// Revokes role Role::revoke(auth()->user(), 'companies'); // Return (boolean): true or false
使用User模型
可以使用User类列出、注册、验证和撤销角色。
- 列出用户角色
$user = User::find(1); // User's Roles $user->listRoles(); // Return (array): [ [ "id" => 3 "name" => "Companies" "slug" => "companies" ], [ "id" => 4 "name" => "Sales" "slug" => "sales" ] ]
- 检查用户角色
$user = User::find(1); // Checking if the user has role $user->hasRole('companies'); // Return (boolean): true or false
- 将角色记录到用户
$user = User::find(1); // Grants role to the User $user->registerRole('companies'); // Return (boolean): true or false
- 撤销角色
$user = User::find(1); // Revokes role $user->revokeRole('companies'); // Return (boolean): true or false
中间件
- 在app\Http\Kernel.php文件中的$routeMiddleware数组中添加
protected $routeMiddleware = [ ... 'permissions' => Doc88\FluxRolePermission\Http\Middleware\FluxRolePermission::class, ... ]
- 中间件用法
// routes/web.php Route::get('list-companies', 'CompanyController@index')->middleware('permissions:list-companies'); // or Route::group(['middleware' => 'permissions:list-companies'], function () { Route::get('list-companies', 'CompanyController@index'); });