laravolt / acl
Basic Laravel ACL
Installs: 7 936
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 4
Forks: 4
Open Issues: 1
Requires
- php: >=7.2
- illuminate/database: ~5.6|^6.0
- illuminate/support: ~5.6|^6.0
- spatie/once: ^2.1
- 4.2.4
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.4
- 4.1.3
- 4.1.2
- 4.1.1
- 4.1.0
- dev-master / 4.0.x-dev
- 4.0.1
- 4.0.0
- 3.4.0
- 3.3.0
- 3.2.0
- 3.1.0
- 3.0.0
- 2.x-dev
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.x-dev
- 1.1.0
- 1.0.2
- 1.0.1
- 1.0.0
- 0.x-dev
- 0.2
- 0.1
- dev-dependabot/composer/illuminate/database-6.19.1
- dev-feature/acl-repo2
This package is auto-updated.
Last update: 2024-05-15 20:24:27 UTC
README
Installation
Composer
composer require laravolt/acl
Service Provider
Skip this step if you are using Laravel 5.5 or above.
Laravolt\Acl\ServiceProvider::class,
Migrations
Publish migration file (optional):
php artisan vendor:publish --provider="Laravolt\Acl\ServiceProvider" --tag=migrations
Run migration:
php artisan migrate
Publish Configuration (Optional)
php artisan vendor:publish --provider="Laravolt\Acl\ServiceProvider" --tag=config
Usage
Add Laravolt\Acl\Traits\HasRoleAndPermission
trait to User
model:
<?php namespace App; use Laravolt\Acl\Traits\HasRoleAndPermission; class User { use HasRoleAndPermission; }
After that, User
will have following methods:
$user->roles()
Relationships that defines User
has many Laravolt\Acl\Models\Role
.
$user->hasRole($role, $checkAll = false)
Check if specific User
has one or many roles. Return boolean true or false.
$user->assignRole($role)
Assign one or many roles to specific User
. Possible values for $role
are: id
, array of id
, role name, Role
object, or array of Role
object.
$user->revokeRole($role)
Revoke/remove one or many roles from specific User
. Possible values for $role
are: id
, array of id
, role name, Role
object, or array of Role
object.
$user->hasPermission($permission, $checkAll = false)
Check if specific User
has one or many permissions. Return boolean true or false.
Command
php artisan laravolt:acl:sync-permission
Bypass Authorization
You can bypass authorization checking using Laravel built-in method:
// Place it somewhere before application running, e.g. in `AppServiceProvider`. Gate::before(function($user){ // check if $user superadmin // and then return true to skip all authorization checking });