holoultek / laravel-capabilities
Laravel 包,用于为您的项目添加角色和权限功能
0.0.9
2024-05-08 10:50 UTC
README
一个 Laravel 包,用于为您的 auth 模型添加角色和权限功能。
安装
要使用此包
composer require holoultek/laravel-capabilities
Uuid Auth 模型
如果您正在使用 uuid 而不是常规整数 id 作为 auth 模型的 id,您应发布迁移并更新列。
php artisan vendor:publish --tag=laravel-capabilities-migrations
迁移数据库
php artisan migrate
然后,您必须发布角色和权限的配置文件
php artisan vendor:publish --tag=laravel-capabilities-config
这将发布 2 个文件
1. capabilities.php
<?php return [ 'ControllerNameWithoutControllerWord' => [ 'capability name' => ['methods', 'as', 'array'], ], ];
权限将通过此配置文件自动发现;键将是您的控制器名称,不包含 'Controller' 字样。
值将是索引数组,描述权限名称作为索引,您的控制器中的方法作为值。
例如
'Dashboard' => [ 'show dashboard' => ['show'], ],
这描述了一个由 "DashboardController" 控制的 "show dashboard" 权限,由 "show" 方法控制
2. roles.php
<?php return [ 'admin' => [ 'show dashboard' ], ];
您可以在此处提供您应用程序的所有角色作为键,其值将是之前步骤中定义的所有权限列表。
'capability' 是中间件。
作为最后一步,您应将访问控制中间件添加到您的路由中
Route::get('/dashboard', function () { return view('dashboard'); })->middleware('auth', 'capability');
或作为分组
Route::middleware(['auth', 'capability'])->group(function () { Route::get('dashboard', [DashboardController::class, 'show'])->name('dashboard'); });
填充表格
在编辑配置文件后,您可以运行以下命令来创建所有定义的角色和权限
php artisan make:capabilities
php artisan make:roles
附加和分离
要附加或分离一个权限
$auth->capabilityAttach('Capability Name'); $auth->capabilityDetach('Capability Name'); // or in short $auth->ca('Capability Name'); $auth->cd('Capability Name');
要附加或分离一个权限
$auth->roleAttach('Role Name'); $auth->roleDetach('Role Name'); // or in short $auth->ra('Role Name'); $auth->rd('Role Name');
要检查 auth 模型是否有权限或角色
$auth->hasCapability('Capability Name'); $auth->hasRole('Role Name'); // or in short $auth->hc('Capability Name'); $auth->hr('Role Name');
徽章
联系
如果您有任何问题或疑虑,请随时通过 ghiath.dev@gmail.com 联系我
或通过访问 https://holoultek.com