Skip to content
This repository has been archived by the owner on Feb 9, 2018. It is now read-only.

Matth--/privileges

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Privileges

SensioLabsInsight

This is a small role-permission integration for laravel projects. I know Entrust exists but i wanted to try it myself.

##Installation Download the package into the vendor folder

composer require matthc/privileges

Add the Service Provider to config/app.php

...
MatthC\Privileges\PrivilegeServiceProvider::class,
...

publish files

$ php artisan vendor:publish

Run the migrations

$ php artisan migrate

Adjust the settings in config/privileges.php and run the following commands to add the roles and permissions you want.

$ php artisan privileges:db:seed

If you want to add users with specific roles, run the following command:

$ php artisan privileges:db:users

Add the trait to the usermodel

use MatthC\Privileges\Traits\PrivilegeUserTrait;

class User extends Authenticatable
{
    use PrivilegeUserTrait;
    
    ...
}

##Usage

###User has role To check if a user has a specific role:

//one role
$user->hasRole('admin'); //returns true/false

//multiple roles
$user->hasRole(['admin', 'author']); //returns true if the user has one of these roles

//user must have all roles
$user->hasRole(['admin', 'author'], true);

###User has permission To check if a user has a specific permission:

//one permission
$user->can('create_post');

//multiple permissions
$user->can(['create_post', 'update_post']);

//all true
$user->can(['create_post', 'update_post'], true);

##Middleware You can also use predefined middleware. Add the following lines to the route middleware array in app/Http/kernel.php

protected $routeMiddleware = [
        ...
        'role' => \MatthC\Privileges\Middleware\PrivilegeRoleMiddleware::class,
        'permission' => \MatthC\Privileges\Middleware\PrivilegePermissionMiddleware::class,
    ];

Example usage:

Route::group(['middleware' => ['role:admin']], function() {
    //add routes
});

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages