shah-newaz/permissible-ng
Role Permission system for Laravel 11+
1,133
| Install | |
|---|---|
composer require shah-newaz/permissible-ng |
|
| Latest Version: | v3.0.2 |
| PHP: | ^8.2 |
| Laravel: | 11 · 12 · 13 |
| Older releases: | 8 |
| License: | MIT |
| Last Updated: | Sep 8, 2026 |
| Links: | GitHub · Packagist |
Maintainer: shah-newaz
Permissible NG
A flexible and powerful Laravel package for managing roles and permissions with hierarchical support.
Features
- Role-based access control (RBAC)
- Hierarchical roles with weight-based inheritance
- Permission management
- Route middleware for roles and permissions
- Caching support for optimal performance
- Soft delete support
Installation
composer require shah-newaz/permissible-ng
php artisan vendor:publish --provider="Shahnewaz\PermissibleNg\Providers\PermissibleServiceProvider"
Run the migrations:
php artisan migrate
Usage
Setup User Model
Add the Permissible trait to your User model:
use Shahnewaz\PermissibleNg\Traits\Permissible;
class User extends Authenticatable
{
use Permissible;
// ... rest of your User model
}
Note: This can be done using the permissible:setup command automatically.
Managing Roles and Permissions
// Create a role
$role = Role::create([
'name' => 'Admin',
'code' => 'admin',
'weight' => 1
]);
// Create a permission
$permission = Permission::createPermission('users.create');
// Assign permission to role
$role->permissions()->attach($permission);
// Assign role to user
$user->roles()->attach($role);
Checking Permissions
// Check single permission
$user->hasPermission('users.create');
// Check multiple permissions (requires all)
$user->hasPermissions(['users.create', 'users.delete']);
// Check permission type
$user->hasPermissionType('users');
Route Protection
Use the elegant route middleware syntax:
// Protect routes with roles
Route::get('/admin/dashboard', [DashboardController::class, 'index'])
->roles(['admin', 'super-admin']);
// Protect routes with permissions
Route::get('/users', [UserController::class, 'index'])
->permissions(['users.view']);
// Combine both
Route::get('/users/create', [UserController::class, 'create'])
->roles(['admin'])
->permissions(['users.create']);
Route Group Protection
Route::group(['middleware' => ['roles:su,admin']], function () {
Route::get('/admin/dashboard', [DashboardController::class, 'index']);
});
Permission Wildcards
Use wildcards for broader permission control:
// Grant all user permissions
Permission::createPermission('users.*');
// Check if user has any user permission
$user->hasPermissionType('users');
Configuration
The package configuration can be modified in config/permissible.php:
return [
'enable_routes' => true,
'enable_user_management_routes' => true,
'first_last_name_migration' => true,
'default_fallback_route' => 'backend.dashboard',
];
License
The MIT License (MIT). Please see License File for more information.
Related Packages
bbs-lab/nova-permission
Manage roles and permissions in Laravel Nova with a visual permission builder, p...
9,497
6
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v3.0.2 | ^8.2 | ^11 | | MIT | |
| v3.0.1 | ^8.2 | ^11 | | MIT | |
| v3.0.0 | ^8.2 | ^11 | | MIT | |
| v2.4.2 | ^8.2 | ^11.31 | MIT | |
| v2.4.1 | ^8.2 | ^11.31 | MIT | |
| v2.4.0 | ^8.2 | ^11.31 | MIT | |
| v2.3.9 | ^8.2 | ^11.31 | MIT | |
| v2.3.8 | ^8.2 | ^11.31 | MIT | |
| v2.3.7 | ^8.2 | ^11.31 | MIT | |
| v2.3.6 | ^8.2 | ^11.31 | MIT | |
| v2.3.5 | ^8.2 | ^11.31 | MIT | |
| v2.3.4 | ^8.2 | ^11.31 | MIT | |
| v2.3.3 | ^8.2 | ^11.31 | MIT | |
| v2.3.2 | ^8.2 | ^11.31 | MIT | |
| v2.3.1 | ^8.2 | ^11.31 | MIT | |
| v2.3.0 | ^8.2 | ^11.31 | MIT | |
| v2.2.9 | ^8.2 | ^11.31 | MIT | |
| v2.2.8 | ^8.2 | ^11.31 | MIT | |
| v2.2.7 | ^8.2 | ^11.31 | MIT | |
| v2.2.6 | ^8.2 | ^11.31 | MIT | |
| v2.2.5 | ^8.2 | ^11.31 | MIT | |
| v2.2.4 | ^8.2 | ^11.31 | MIT | |
| v2.2.3 | ^8.2 | ^11.31 | MIT | |
| v2.2.2 | ^8.2 | ^11.31 | MIT | |
| v2.2.1 | ^8.2 | ^11.31 | MIT | |
| v2.2.0 | ^8.2 | ^11.31 | MIT | |
| v2.1.9 | ^8.2 | ^11.31 | MIT | |
| v2.1.8 | ^8.2 | ^11.31 | MIT | |
| v2.1.7 | ^8.2 | ^11.31 | MIT | |
| v2.1.6 | ^8.2 | ^11.31 | MIT |
Showing the latest 30 of 50. See every release on Packagist