bedoke/laravel-role-perms

Role based permissions for laravel

dev-master 2019-07-29 08:34 UTC

This package is not auto-updated.

Last update: 2024-10-02 08:48:11 UTC


README

Get the package

composer require bedoke/laravel-role-perms

Extend the user class

Import the Roles trait in the User.php file:

use bedoke\LaravelRolePerms\Traits\Roles;

Inside the user class use the trait:

use Roles;

Migration

php artisan migrate

Seeds

php artisan db:seed --class=bedoke\LaravelRolePerms\Database\Seeds

By default the following seeder creates the admin role and some permission. If there is a user with the name admin, then by default he gets the role admin.

Usage

Functions

User Model

To check if a user model has a permission or a role you can use this:

$user->hasPermission('permissionName', [Object $entity]); // true || false
$user->hasRole('roleName', [Object $entity]); // true || false

The user function results will be cached! Use RolePerms::clearPermissionCache([User $user]); or RolePerms::clearRoleCache([User $user]); to clean up if needed.

Facade

Include the Facade to use the following functions.

use bedoke\LaravelRolePerms\Facades\RolePerms;

Now you can use the following functions:

RolePerms::userHasRole(User  $user, String  $roleName, [Object $entity]); // true || false

RolePerms::userHasPermission(User  $user, String  $permissionName, [Object $entity]); // true || false

RolePerms::roleHasPermission(String  $roleName, String  $permissionName); // true || false

RolePerms::grantRole(User  $user, String  $roleName, [Object $entity]); // true || false

RolePerms::grantPermission(String  $roleName, String  $permissionName); // true || false

RolePerms::revokeRole(User  $user, String  $roleName, [Object $entity]); // true || false

RolePerms::revokePermission(String  $roleName, String  $permissionName); // true || false

RolePerms::clearRoleCache([User $user]); // true || false

RolePerms::clearPermissionCache([User $user]); // true || false

RolePerms::createRole(String  $roleName); // Role || false

RolePerms::createPermission(String  $permissionName); // Permission || false

RolePerms::deleteRole(String  $roleName); // true || false

RolePerms::deletePermission(String  $permissionName); // true || false