2017 © Pedro Peláez
 

library laravel-roles

Powerful package for handling roles and permissions in Laravel 5.3

image

yasser/laravel-roles

Powerful package for handling roles and permissions in Laravel 5.3

  • Monday, January 2, 2017
  • by yasser.mussa
  • Repository
  • 1 Watchers
  • 2 Stars
  • 27 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Roles and Permissions

Build Status, (*1)

Installation

For you can install this package. You should to follow the next steps., (*2)

Composer

For a installation package you can use the composer command, (*3)

composer require yasser/laravel-roles

or you can pull this package in through Composer file, (*4)

{
    "require": {
        ...
        "yasser/laravel-roles": "^0.1.2"
    }
}

Service Provider

Add the package to your application service providers in config/app.php file., (*5)

'providers' => [
        ...
        /*
         * Package Service Providers...
         */

        Yasser\Roles\RolesServiceProvider::class,

        /*
         * Application Service Providers...
         */
        ...
],

Migrations

Excecute this command in your console to add migrations files to a project, (*6)

php artisan vendor:publish --provider="Yasser\Roles\RolesServiceProvider" --tag=migrations

and also run the migrations, (*7)

php aritsan migrate

User trait

Include HasRolesRelations trait inside your User model., (*8)


use Yasser\Roles\Traits\HasRolesRelations; class User extends Authenticatable { use Notifiable, HasRolesRelations; }

Middleware

Add the middleware VerifyPermission into app/Http/kernel.php file., (*9)


/** * The application's route middleware. * * These middleware may be assigned to groups or used individually. * * @var array */ protected $routeMiddleware = [ ... 'verify' => \Yasser\Roles\Middlewares\VerifyPermission::class, 'check' => \Yasser\Roles\Middlewares\VerifyRole::class, ],

Usage

Create Permissions

    use Yasser\Roles\Models\Permission;

    $permission = Permission::create([
        'name' => 'Create Users',
        'slug' => 'user.create',
        'description' => '', //optional
        'model' => '' //optional
    ]);

Create Roles

    use Yasser\Roles\Models\Role;

    $adminRole = Role::create([
        'name' => 'Admin',
        'slug' => 'admin',
        'description' => ''//optional
    ]);

Attach and Detach Permissions to a role

You can attach one permition to a role, (*10)

    $createPermission = Permission::create([
        'name' => 'Create Users',
        'slug' => 'user.create',
        'description' => '', //optional
        'model' => '' //optional
    ]);

    $role = Role::create([
        'name' => 'Admin',
        'slug' => 'admin',
    ]);

    $role->attachPermission($createPermission);

or you can attach many permitions to a role, (*11)

    $createPermission = Permission::create([
        'name' => 'Create Users',
        'slug' => 'user.create'
    ]);

    $deletePermission = Permission::create([
        'name' => 'Delete user',
        'slug' => 'user.delete'
    ]);

    $role = Role::create([
        'name' => 'Admin',
        'slug' => 'admin',
    ]);

    $role->attachPermissions([$createPermission, $deletePermission]);

Detach a one permission from a role, (*12)

    $role->detachPermission($createRole);

or you can detach many permissions from a role, (*13)

    $role->detachPermissions([$createPermission, $deletePermission])

Attach and Detach Role to a user

Attach a Role to a user, (*14)

    $role = Role::create([
        'name' => 'Admin',
        'slug' => 'admin',
    ]);

    $user->attachRole($role)

Attach many roles to a user, (*15)

    $adminRole = Role::create([
        'name' => 'Admin',
        'slug' => 'admin',
    ]);

    $operatorRole = Role::create([
        'name' => 'Operator',
        'slug' => 'operator',
    ]);

    $user->attachRoles([$adminRole, $operatorRole]);

Detach a role from a user, (*16)

    $user->detachRole($role)

Detach many roles from a user, (*17)

    $user->detachRoles([$adminRole, $operatorRole])

Check if a user has a role

    $adminRole = Role::create([
        'name' => 'Admin',
        'slug' => 'admin',
    ]);

    $user->checkRole('admin'); //return true or false

Check if a user has a permission

    $createPermission = Permission::create([
        'name' => 'Create Users',
        'slug' => 'user.create'
    ]);

    $user->canDo('user.create');

Blade directives

    $role = Role::create([
        'name' => 'Admin',
        'slug' => 'admin',
    ]);

    @checkRole('admin')
    ...
    @endCheckRole

    $createPermission = Permission::create([
        'name' => 'Create Users',
        'slug' => 'user.create'
    ]);

    @canDo('user.create')
        <a href="/users/create">Create a user</a>
    @endCanDo

Middleware functions

    $role = Role::create([
        'name' => 'Admin',
        'slug' => 'admin',
    ]);

    Route::get('user/create', ...)->middleware('ckeck:admin');
    $createPermission = Permission::create([
        'name' => 'Create Users',
        'slug' => 'user.create'
    ]);

    Route::get('/user/create', ... )->middleware('verify:user.create');

The Versions

02/01 2017

dev-master

9999999-dev

Powerful package for handling roles and permissions in Laravel 5.3

  Sources   Download

MIT

The Requires

 

The Development Requires

by Yasser Mussa

29/12 2016

0.1.2

0.1.2.0

Powerful package for handling roles and permissions in Laravel 5.3

  Sources   Download

MIT

The Requires

 

The Development Requires

by Yasser Mussa

28/12 2016

0.1.1

0.1.1.0

Powerful package for handling roles and permissions in Laravel 5.3

  Sources   Download

MIT

The Requires

 

The Development Requires

by Yasser Mussa

28/12 2016

0.1

0.1.0.0

Powerful package for handling roles and permissions in Laravel 5.3

  Sources   Download

MIT

The Requires

 

The Development Requires

by Yasser Mussa