rodrigopedra/laravel-simple-acl
Laravel Simple ACL
1,286
1
| Install | |
|---|---|
composer require rodrigopedra/laravel-simple-acl |
|
| Latest Version: | v2.2.1 |
| PHP: | ^8.2 |
| Laravel: | 11 · 12 · 13 |
| Older releases: | 5 – 10 |
| License: | MIT |
| Last Updated: | Jul 29, 2026 |
| Links: | GitHub · Packagist |
Maintainer: rodrigo.pedra
Laravel Simple ACL
Requirements
- PHP 8.2+
- Laravel 11+
Installation
{
"require": {
"rodrigopedra/laravel-simple-acl": "^2.0"
}
}
- Export configuration and set the project's User model class name
- default is:
App\Models\User
- default is:
- Add
\RodrigoPedra\LaravelSimpleACL\Concerns\HasACLtrait to the project's User model - Run migrations
- Optionally load the included Middleware
- This will load and cache a logged in user's roles and permissions and define a gate to each permission
Usage
Create roles and permissions through the included RodrigoPedra\LaravelSimpleACL\Models\Role and
RodrigoPedra\LaravelSimpleACL\Models\Permission Eloquent models.
Permissions are meant to be grouped into a role, you can create a database seeder, or migration for your initial setup, for example:
$addUsers = Permission::create([
'label' => 'add-users',
'description' => 'User is allowed to create new users',
'sort_index' => 1,
]);
$removeUsers = Permission::create([
'label' => 'remove-users',
'description' => 'User is allowed to remove users',
'sort_index' => 2,
]);
Role::create([
'label' => 'admin',
'sort_index' => 1,
])->attachPermission($addUsers)->attachPermission($removeUsers);
Role::create([
'label' => 'leader',
'sort_index' => 2,
])->attachPermission($addUsers);
You can then add or remove roles to individual users using the included trait's helper methods:
$user->attachRole(Role::hasLabel('admin')->first());
$user->detachRole(Role::hasLabel('leader')->first());
If you add the \RodrigoPedra\LaravelSimpleACL\Http\Middleware\LoadSimpleACL middleware
to your middleware stack, you can use Laravel's gate to check for permissions:
if ($user->can('add-users')) {
// do something
}
Even on blade views
@can('add-users')
{{-- do something --}}
@endcan
Related Packages
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v2.2.1 | ^8.2 | ^11.0| | MIT | |
| v2.1.0 | ^8.2 | ^11.0| | MIT | |
| v2.0.0 | ^8.2 | ^11.0| | MIT | |
| v1.2.0 | ^8.1 | ^9.0| | MIT | |
| v1.1.1 | ^8.1 | ^9.0| | MIT | |
| v1.1.0 | ^8.1 | ^9.0| | MIT | |
| v1.0.0 | ^8.1 | ^9.0| | MIT | |
| v0.4.0 | ^7.2.5| | ^6.20.12| | MIT | |
| v0.3.0 | >=5.5.0 | ^5.4| | MIT | |
| v0.2.2 | >=5.5.0 | ^5.4| | MIT | |
| v0.2.1 | >=5.5.0 | ^5.4| | MIT | |
| v0.2.0 | >=5.5.0 | ^5.4| | MIT | |
| v0.1.0 | >=5.5.0 | ^5.4| | MIT |