dev-master
9999999-devRoles & Permissions for Laravel where roles can be held in regard to a database object
MIT
The Requires
The Development Requires
by Joseph Paul
Wallogit.com
2017 © Pedro Peláez
Roles & Permissions for Laravel where roles can be held in regard to a database object
Roles & Permissions for Laravel where roles can be held in regard to a database object, (*1)
There are plenty of packages that add ACL functionalities to a Laravel application. Yet, none of the existing solutions seems to allow us to assign roles to users with respect to an object. We often come across a use case where we do not only need to define global roles, such as TECH_ADMIN, but also roles in regard to a database object, such as an Organisation, which has eg. EDITOR users that are granted certain permissions only on that specific Organisation and not on others., (*2)
This package is in its very early days. It currently makes quite a few assumptions:, (*3)
users tableusers table already exists when installing the package and running the migrationsusers table has a primary key id which is an unsigned integer
rolespermissionspermission_rolerole_usercomposer require sehrgut/laravel-object-roles
php artisan migrate
HasRolesAndPermissions trait on the `User model<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use SehrGut\LaravelObjectRoles\HasRolesAndPermissions;
use SehrGut\LaravelObjectRoles\Models\Permission;
class User extends Model
{
use HasRolesAndPermissions;
}
$permission = SehrGut\LaravelObjectRoles\Models\Permission::create([
'name' => 'posts.update',
'description' => 'The ability to update existing Post objects',
]);
$role = SehrGut\LaravelObjectRoles\Models\Role::create([
'name' => 'EDITOR',
'description' => 'A User who can manage content',
]);
$role->attachPermission('posts.update');
// or:
$role->attachPermission($permission);
$user->assignGlobalRole('EDITOR');
$user->assignObjectRole('EDITOR', $organisation);
$user->hasGlobalPermission('posts.update')
$user->hasPermissionThrough('show_statistics', $organisation)
This project is released under the MIT License., (*4)
Roles & Permissions for Laravel where roles can be held in regard to a database object
MIT