bdmehedi / laravel-permission
A laravel package to manage laravel roles and permissions
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 0
Type:package
Requires
- php: >=7.3
- illuminate/support: >=6.0
This package is auto-updated.
Last update: 2024-10-17 11:36:13 UTC
README
laravel-permission
This is a Laravel package that allows you to manage roles and permissions in any Laravel project with minimal database queries and a small number of loaded models. It is a highly optimized package
Installation, configuration, and uses instructions
install via composer
composer require bdmehedi/laravel-permission
The service provider will be registered automatically. If you want, you may add it manually.
'providers' => [
// ...
BdMehedi\LaravelPermission\LaravelPermissionServiceProvider::class,
];
Publish the migrations and edit as your need
php artisan vendor:publish --tag=laravel_permission_migration
Run the migrations. After publishing the migrations and configuring them as your need you have to create database tables by running the command bellow:
php artisan migrate
Add the HasPermissions traits to User model(s)
use HasPermissions
Uses
Create Role and Permission
use BdMehedi\LaravelPermission\Models\Permission; use BdMehedi\LaravelPermission\Models\Role; $role = Role::create(['role' => 'admin']); $permission = Permission::create(['name' => 'create-user', 'group' => 'user']); //the group is optional
Assign roles and permissions to User
$user->assignRole('admin'); $user->givePermissionTo('create-user'); //or your can assign permissions by providing an array $user->assignRole(['admin', 'user']); $user->givePermissionTo(['create-user']);
Withdraw roles and permissions from User
// Single permission or role $user->revokeRole('admin'); $user->withdrawPermissionTo('create-user'); // Or array of permissions or roles $user->revokeRole(['admin']); $user->withdrawPermissionTo(['create-user']);
Give permissions to Role
$role->givePermissionTo('create-user'); //or an array or permissions $role->givePermissionTo(['create-user']);
Withdraw permissions from Role
$role->withdrawPermissionTo('create-user'); //or array or permissions $role->givePermissionTo(['create-user']);
Checking permissions
You can check a user's permission with Laravel's default can function.
$user->can('create-user');
Or you can check with hasPermissionTo
$user->hasPermissionTo('create-user');
Checking roles
$user->hasRole('admin'); // or check at least one role from an array of roles: $user->hasRole(['admin', 'user']);
Middleware
Default middleware
You can use the laravel default middleware can provided by \Illuminate\Auth\Middleware\Authorize::class
Route::middleware('can:create-user')->group(function () { });
Package middleware
If you can check at least one premission of many you can use the allow
middleware
Route::middleware('allow:create|view|delete')->group(function () { });
if you have another guard you can user
Route::middleware('allow:create|view|delete,guardName')->group(function () { });
Contribution Guide
This is still in beta, though I have confidence that it will work as expected. You can contribute by reporting bugs, fixing bugs, reviewing pull requests, and more ways. Go to the issues section, and you can start working on an issue immediately. If you want to add or fix something, open a pull request.