This package allows you to manage target specific user permissions and roles in a database.
This package requires PHP 7.2 and Laravel 5.8 or higher.
composer require programic/permissions
Publish the config & migration files
php artisan vendor:publish --provider="Programic\Permission\PermissionServiceProvider"
- Add the HasPermission & HasRole trait to the User model
use Illuminate\Foundation\Auth\User as Authenticatable;
use Programic\Permission\Traits\HasPermissions;
use Programic\Permission\Traits\HasRole;
class User extends Authenticatable
{
use HasPermissions;
use HasRole;
// ...
}
- Add the HasEntityPermissions trait to the Target model
use Illuminate\Database\Eloquent\Model;
use Programic\Permission\Traits\HasEntityPermissions;
class Article extends Model
{
use HasEntityPermissions;
// ...
}
// Assign global role to user
$user->assignRole('writer');
// Assign target specific role to user
$user->assignRole('writer', $model);
// Adding global permission to role
$role->givePermission('view-article');
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security-related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.