Skip to content
Icon

WARNING You're browsing the documentation for an upcoming version of Laravel Acl. The documentation and features of this release are subject to change.

User Permissions

User Permissions is an extended version of HasRole that allows us to directly add custom permissions to a User. To implement this setup, you need to extend Yajra\Acl\Traits\HasRoleAndPermission trait on your User model.

class User extends Authenticatable
{
use HasRoleAndPermission;
}

getPermissions()

Retrieves an array of assigned permission slugs for the user.

$user = User::find(1);
 
return $user->getPermissions();

grantPermission($ids, array $attributes = [], $touch = true)

Grant the given permission to the user.

$user = User::find(1);
$user->grantPermission(1);
 
$permissions = Permission::all();
$user->grantPermission($permissions);

grantPermissionBySlug($slug)

Grant the given permission slug to the user.

$user = User::find(1);
$user->grantPermissionBySlug('create-post');
 
$permissions = ['create-post', 'view-post'];
$user->grantPermissionBySlug($permissions);

grantPermissionByResource($resource)

Grant the given permission resource to the user.

$user = User::find(1);
$user->grantPermissionByResource('Posts');
 
$resources = ['Users', 'Posts'];
$user->grantPermissionByResource($resources);

revokePermission($ids = null, $touch = true)

Revokes the given permission from the user.

$user = User::find(1);
 
$user->revokePermission(1);
$user->revokePermission([1, 2]);

revokePermissionBySlug($slug)

Revokes the given permission by slug from the user.

$user = User::find(1);
 
$user->revokePermissionBySlug('create-posts');
$user->revokePermissionBySlug(['create-posts', 'update-posts']);

##revokeAllPermissions() Revokes all permissions from the user.

$user = User::find(1);
 
$user->revokeAllPermissions();

syncPermissions($ids, $detaching = true)

Syncs the given permissions with the user. This will revoke any permissions not supplied.

$user = User::find(1);
 
$user->syncPermissions(1);
$user->syncPermissions([1, 2, 3]);