libressltd/deeppermission

full stack package allow deep permission system


License
MIT

Documentation

DeepPermission

Step 1: Install DeepPermission

composer require libressltd/deeppermission

Step 2: Add service provider to 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,

Step 3: Publish vendor

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

php artisan migrate

Step 4: Add following line to User Model (Remember to move User.php to app/Models) or you can find the newest version in vendor/libresslt/deeppermission/src/User.php



use LIBRESSLtd\DeepPermission\Traits\DPUserModelTrait;

class User extends Authenticatable
{
    use DPUserModelTrait;
}

Add this row in the end of scripts.blade.php

@yield('dp_script')

Add this row to Http\Kernel.php in $routeMiddleware


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

Step 5 (optional): If you want a user pass all the permission, add LIBRE_DP_ADMIN_ID to your .env file

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

Step 6: (for LBSA only) Move example/app.blade.php to views root folder and include libressltd.deeppermission.sidebar view

Supported function


//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");