aliwael / permissions
Laravel package for user permissions management.
v1.0
2025-08-07 07:36 UTC
Requires
- php: >=7.2
- laravel/framework: ^8.0|^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- mockery/mockery: ^1.4
- orchestra/testbed: ^6.0
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2026-02-20 19:48:23 UTC
README
Manage user permissions and roles in Laravel.
Features
- Manage permissions and assign them to users.
- Manage roles and assign them to users and permissions.
- Middleware to check for permissions or roles.
- Traits to add permissions and roles to the User model.
- Ready-to-use migrations for all required tables.
Installation
- Add the package to your project:
composer require aliwael/permissions
- Publish migration and helper files automatically:
php artisan vendor:publish --tag=permissions-assets
- Run the migrations:
php artisan migrate
- Add Traits to your User model:
use Permissions\Traits\HasPermissions; use Permissions\Traits\HasRoles; class User extends Authenticatable { use HasPermissions, HasRoles; // ... }
Usage
Assign Permission or Role
$user->givePermission('edit-post'); $user->assignRole('admin');
Check Permission or Role
$user->hasPermission('edit-post'); $user->hasRole('admin'); $user->hasPermissionViaRole('edit-post');
Middleware in Routes
Route::get('/admin', function () { // ... })->middleware('role:admin'); Route::post('/post', function () { // ... })->middleware('permission:edit-post');
Tables
- permissions: Permissions.
- roles: Roles.
- user_permission: User-permission pivot table.
- role_user: User-role pivot table.
- permission_role: Role-permission pivot table.
Contributions
To contribute or report an issue, please open an Issue or Pull Request at: https://github.com/aliwael/permissions
This package was developed to make managing permissions and roles in Laravel projects easy.