aliwael/permissions

Laravel package for user permissions management.

Maintainers

Package info

github.com/aliwael/permissions

pkg:composer/aliwael/permissions

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0 2025-08-07 07:36 UTC

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

  1. Add the package to your project:
composer require aliwael/permissions
  1. Publish migration and helper files automatically:
php artisan vendor:publish --tag=permissions-assets
  1. Run the migrations:
php artisan migrate
  1. 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.