Skip to content

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]);