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()
grantPermission($ids, array $attributes = [], $touch = true)
grantPermissionBySlug($slug)
grantPermissionByResource($resource)
revokePermission($ids = null, $touch = true)($ids = null, $touch = true)
revokePermissionBySlug($slug)
revokeAllPermissions()
syncPermissions($ids, $detaching = true)
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]);