Wallogit.com
2017 © Pedro Peláez
Class-based authorization for Laravel
Class-based authorization for Laravel, (*1)
Add to providers:, (*2)
KilroyWeb\Permissions\Providers\PermissionServiceProvider::class,, (*3)
publish config:, (*4)
php artisan vendor:publish --tag=config, (*5)
php artisan make:permission CLASSNAME, (*6)
ie:, (*7)
php artisan make:permission ManageUsers, (*8)
Create a new migration:, (*9)
Schema::create('role_permissions', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->string('permission');
$table->timestamps();
});
and model:, (*10)
php artisan make:model RolePermission
Create a new migration:, (*11)
Schema::create('user_permissions', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->string('permission');
$table->timestamps();
});
and model:, (*12)
php artisan make:model UserPermission
Add the HasPermissions trait to your User/Role model:, (*13)
use \KilroyWeb\Permissions\Traits\HasPermissions;
Along with a pointer to the permission model:, (*14)
protected $permissionsClass = \App\UserPermission::class;
The trait provides a few useful properties + methods:, (*15)
$user->permissionClassNames, (*16)
uses Laravel's hasmany to return the direct linked permission classes, (*17)
$user->permissions, (*18)
Returns a collection of permission class instances, (*19)
Methods for adding/deleting permissions:, (*20)
$user->addPermission($permissionInstance); $user->deletePermission($permissionInstance); $user->syncPermissions($permissionInstances);, (*21)