bunthoeuntok/laravel-simple-permission is a Laravel package for laravel simple permission package.
It currently has 1 GitHub stars and 1 downloads on Packagist.
Install it with composer require bunthoeuntok/laravel-simple-permission.
Discover more Laravel packages by bunthoeuntok
or browse all Laravel packages to compare alternatives.
Last updated
This package is developed to help laravel developer to implement siple role and permission.
You can install the package via composer:
composer require bunthoeuntok/laravel-simple-permission
You can publish config, migrations and middleware by running:
php artisan permission:install
Then migrate tables by running:
php artisan migrate
This is the contents of the published config file:
return [
// Menu level structure
'menu_levels' => [
'module',
'sub-module',
'page'
],
// Cache key
'cache_key' => 'permissions',
// Menu structure to import
'data' => [
...
]
];
You need to use HasRole trait in User.php model
use Bunthoeuntok\SimplePermission\Traits\HasRole;
class User extends Authenticatable
{
...
use HasRole;
...
}
Register PermissionMiddleware.php in Kernel.php
protected $routeMiddleware = [
...
'role.permission' => \App\Http\Middleware\PermissionMiddleware::class
];
Use naming route middleware in route file.
name, which match to route_name in menu action.// Index action
Route::get('users', [UserController::class, 'index'])->middleware(['role.psermission', 'auth'])->name('users.index');
// Delete action
Route::get('users/{user}', [UserController::class, 'destroy'])->middleware(['role.psermission', 'auth'])->name('users.destroy');
// Create a role
$role = Bunthoeuntok\SimplePermission\Models\Role::create([
'role_name' => 'Admin',
'is_admin' => false;
]);
// Create user
$user = User::factory()->create();
// Assign role to a user
$user->assignRole($role);
$menu = Bunthoeuntok\SimplePermission\Models\Menu::create([
'menu_name' => 'User',
'level' => 'page'; // base on menu_levels in simple-permissions.php config
]);
// Create menu actions
$menu->actions()->saveMany([
new Bunthoeuntok\SimplePermission\Models\Menu([
'action_name' => 'index',
'route_name' => 'modules.root-pages.index',
'default' => true,
]),
new Bunthoeuntok\SimplePermission\Models\Menu([
'action_name' => 'delete',
'route_name' => 'modules.root-pages.delete',
])
]);
php artisan permission:import, this command will import menu structure, which was set data key in simple-permission.php config.return [
// Menu structure to import
'data' => [
[
'menu_name' => 'User',
'level' => 'page',
'actions' => [
[
'action_name' => 'index',
'route_name' => 'users.index',
'default' => true,
],
[
'action_name' => 'delete',
'route_name' => 'users.delete',
],
]
],
],
]
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.