- Multiple user models.
- Multiple permissions can be attached to users.
- Multiple permissions can be attached to groups.
- Permissions verification.
- Permissions caching.
- Events when permissions are attached, detached or synced.
- Multiple permissions can be attached to user or group.
- Permissions can be inherited with unlimited investment from users and groups.
- Laravel gates and policies.
The visual interface for managing access control rules and permissions can be found at this link. It offers an intuitive and user-friendly environment for administrators to define roles, assign permissions, and configure access rules.
For detailed usage examples and instructions, refer to the example repository.
See the documentation for detailed installation and usage instructions.
composer require wnikk/laravel-access-rules
See the installation page for detailed.
This package allows you to manage user permissions and groups (instead roles) in a database.
Once installed you can do stuff like this:
use Wnikk\LaravelAccessRules\AccessRules;
// Add new rule permission
AccessRules::newRule('articles.edit', 'Access to editing articles');
// Adding permissions to a user
$user->addPermission('articles.edit');
Or you can inherit the rights from another user or groups
// According to the existing user from object
$user->inheritPermissionFrom(User::find(1));
// By identifier
$user->inheritPermissionFrom(User::class, 1);
// From the group
$user->inheritPermissionFrom('Group', 1);
Because all permissions will be registered on Laravel's gate, you can check if a user has a permission with Laravel's default can
function:
$user->can('articles.edit');
Or without model:
$acr = new AccessRules;
$acr->setOwner('AnotherAnySystemUser', 'UserID-From-Any-System-FF01');
$check = $acr->hasPermission('articles.edit');
if (!$check) {abort(403);}
Examples of how can be used in more detail described in Basic Usage section.
Before opening an issue there are a couple of considerations:
- You are all awesome!
- Pull requests are more than welcome.
- Read the instructions and make sure all steps were followed correctly.
- Check that the issue is not specific to your development environment setup.
- Provide duplication steps.
- Attempt to look into the issue, and if you have a solution, make a pull request.
- Show that you have made an attempt to look into the issue.
- Check to see if the issue you are reporting is a duplicate of a previous reported issue.
- Following these instructions show me that you have tried.
- Please be considerate that this is an open source project that I provide to the community for FREE when opening an issue.
- spatie/laravel-permission takes a slightly different approach to its features.
- ultraware/roles It not supported and transferred to archive.
- santigarcor/laratrust implements team support.
- zizaco/entrust offers some wildcard pattern matching.
The MIT License (MIT). Please see License File for more information.