composer require laravolt/acl
Skip this step if you are using Laravel 5.5 or above.
Laravolt\Acl\ServiceProvider::class,
Publish migration file (optional):
php artisan vendor:publish --provider="Laravolt\Acl\ServiceProvider" --tag=migrations
Run migration:
php artisan migrate
php artisan vendor:publish --provider="Laravolt\Acl\ServiceProvider" --tag=config
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:
Relationships that defines User
has many Laravolt\Acl\Models\Role
.
Check if specific User
has one or many roles. Return boolean true or false.
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.
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.
Check if specific User
has one or many permissions. Return boolean true or false.
php artisan laravolt:acl:sync-permission
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
});