libressltd / deeppermission

全栈包,允许深度权限系统


README

步骤 1:安装 DeepPermission

composer require libressltd/deeppermission

步骤 2:将服务提供者添加到 config/app.php

//Provider

LIBRESSLtd\DeepPermission\DeepPermissionServiceProvider::class, 
LIBRESSLtd\LBForm\LBFormServiceProvider::class,
Maatwebsite\Excel\ExcelServiceProvider::class,
Collective\Html\HtmlServiceProvider::class,
LIBRESSLtd\LBSA\LBSAServiceProvider::class,

//Fadecade

'Excel' => Maatwebsite\Excel\Facades\Excel::class,
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,

步骤 3:发布供应商

php artisan vendor:publish --tag=lbsa_init --force php artisan vendor:publish --tag=deeppermission --force

php artisan migrate

步骤 4:将以下行添加到 User 模型(请记住将 User.php 移动到 app/Models 目录)或您可以在 vendor/libresslt/deeppermission/src/User.php 中找到最新版本

use LIBRESSLtd\DeepPermission\Traits\DPUserModelTrait;

class User extends Authenticatable
{
    use DPUserModelTrait;
}

在 scripts.blade.php 的末尾添加此行

@yield('dp_script')

将此行添加到 Http\Kernel.php 中的 $routeMiddleware

'dppermission' => \App\Http\Middleware\DPPermissionMiddleware::class,
'dprole' => \App\Http\Middleware\DPRoleMiddleware::class,

步骤 5(可选):如果您想让用户通过所有权限,请将 LIBRE_DP_ADMIN_ID 添加到您的 .env 文件中

LIBRE_DP_ADMIN_ID={{user_id}}
#for example
LIBRE_DP_ADMIN_ID=1

步骤 6:(仅限 LBSA)将 example/app.blade.php 移动到 views 根目录,并包含 libressltd.deeppermission.sidebar 视图

支持的功能

//Check role of user
$user->hasRole("role.code");

//Check permission of user (include if user has role which has permission)
$user->hasPermission("permission.code");

//Query with role code
User::withRole("role.code");

//Query with permission code (include user who has role which has permission)
User::withPermission("permission.code");

// Using middleware

middleware("dppermission:admin.read");
middleware("dprole:admin");