, (*1)
LaraCanCan
Resource-Based permission system for laravel, (*2)
Features
- Resource Permissions
- Permission Inheritance
- Roles
- Custom Permissions
, (*3)
, (*4)
, (*5)
Installation (Laravel 5.x)
In composer.json:, (*6)
"require": {
"hamedmehryar/laracancan" "1.0.0"
}
Run:, (*7)
composer update
Add the service provider to config/app.php
under providers
:, (*8)
'providers' => [
Hamedmehryar\Laracancan\LaracancanServiceProvider::class,
]
Create the Migration file:, (*9)
php artisan laracancan:migration
Migrate your database:, (*10)
php artisan migrate
Seed the Permissions:, (*11)
php artisan laracancan:seed
Add the trait to your user model:, (*12)
use Hamedmehryar\Laracancan\Traits\LaracancanUserTriat;
class User extends Model {
use LaracancanUserTrait;
}
usage
Permission checking:, (*13)
Laracancan::canCreate('<resource-name>');
Laracancan::canRead('<resource-name>');
Laracancan::canUpdate('<resource-name>');
Laracancan::canDelete('<resource-name>');
Laracancan::can('<permission-name>', '<resource-name>');
$user->canCreate('<resource-name>');
$user->canRead('<resource-name>');
$user->canUpdate('<resource-name>');
$user->canDelete('<resource-name>');
$user->can('<permission-name>', '<resource-name>');
Role checking:, (*14)
Laracancan::roles();
Laracancan::hasRole();
$user->roles();
$user->hasRole();
Getting Resources based on Permission:, (*15)
Laracancan::creatableResources();
Laracancan::readableResources();
Laracancan::updatableResources();
Laracancan::deletableResources();
Laracancan::resourcesByPermission('<permission-name');
$user->creatableResources();
$user->readableResources();
$user->updatableResources();
$user->deletableResources();
$user->resourcesByPermission('<permission-name');
Attaching Roles to user:, (*16)
$user->attachRole('<role-object>');
$user->detachRole('<role-object>');
$user->attachRoles('<roles>');
$user->detachRoles('<roles>');
Author