holoultek/laravel-capabilities

Laravel 包,用于为您的项目添加角色和权限功能

0.0.9 2024-05-08 10:50 UTC

This package is auto-updated.

Last update: 2024-09-08 11:33:23 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');

徽章

License

联系

如果您有任何问题或疑虑,请随时通过 ghiath.dev@gmail.com 联系我

或通过访问 https://holoultek.com