composer require elliot9/laravel-permission-helper
add all of the following classes to your config/app.php service providers list.
Elliot9\laravelPermissionHelper\PermissionHelperServiceProvider::class
and add this below the aliases
'PermissionHelper' => Elliot9\laravelPermissionHelper\PermissionHelperFacade::class
Publish the storage configuration file and migrateion.
php artisan vendor:publish --provider="Elliot9\laravelPermissionHelper\PermissionHelperServiceProvider" --tag="migrations"
php artisan vendor:publish --provider="Elliot9\laravelPermissionHelper\PermissionHelperServiceProvider" --tag="config"
Running Migrations
php artisan migrate
set all the Authenticatable class at config like ->
return [
'PermissionSetting' => [
'types' => [
'User' => \App\User::class,
'Admin' => \App\Admin::class,
]
]
];
//Binding Model
$user = PermissionHelper::SetInstance($user);
// Adding role to a user
$user->SetRole('admin|writer|driver|...');
// Adding permissions via a role
$user->SetRolePermission('update time|edit articles|delete papers|...');
// Get user's all roles
$user->GetRole();
// Get user's all permissions
$user->GetPermission();
// Remove user's role
$user->RemoveRole('admin|driver');
// Remove permissions via a role
$user->RemoveRolePermission('update time');
// Create new role
$PermissionHelper = PermissionHelper::SetInstance(User::class);
$PermissionHelper->CreateRole('author|officer');
// Create new permissions
$PermissionHelper = PermissionHelper::SetInstance(User::class);
$PermissionHelper->CreatePermission('edit paper|delete tickets');
// Delete role
$PermissionHelper->DeleteRole('author');
// Delete permissions
$PermissionHelper->DeletePermission('edit paper|delete tickets');
// Check had permission
$user->HasPermission('edit paper|delete tickets');
// Using in Blade
@HasPermission
@HasRole
@endHas
// Using in middleware
$this->middleware('PermissionCheck:edit papers');