<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
creativecrafts / laravel-role-permission-manager example snippets
use CreativeCrafts\LaravelRolePermissionManager\LaravelRolePermissionManagerServiceProvider;
public function boot()
{
LaravelRolePermissionManagerServiceProvider::registerUserModel(\App\Models\User::class);
}
use CreativeCrafts\LaravelRolePermissionManager\Models\Permission;
$permission = Permission::create([
'name' => 'Edit Posts',
'description' => 'Allow user to edit posts',
'scope' => 'blog'
]);
use CreativeCrafts\LaravelRolePermissionManager\Models\Role;
$role = Role::create([
'name' => 'Editor',
'description' => 'Can edit and publish content'
]);
if ($role->hasPermissionTo('edit-posts')) {
// Allow editing posts
}
use CreativeCrafts\LaravelRolePermissionManager\Facades\LaravelRolePermissionManager;
// Create a role
$role = LaravelRolePermissionManager::createRole('Editor', 'editor');
// Create a permission
$permission = LaravelRolePermissionManager::createPermission('Edit Posts', 'edit-posts');
// Give permission to role
LaravelRolePermissionManager::givePermissionToRole($role, $permission);
// Grant permission to role and its sub-roles
LaravelRolePermissionManager::grantPermissionToRoleAndSubRoles($role, 'edit-posts');
// Revoke permission from role and its sub-roles
LaravelRolePermissionManager::revokePermissionFromRoleAndSubRoles($role, 'edit-posts');
// Check if user has permission
$hasPermission = LaravelRolePermissionManager::hasPermissionTo($user, 'edit-posts');
// Get all sub-roles of a given role
$parentRole = Role::findByName('manager');
$subRoles = LaravelRolePermissionManager::getSubRoles($parentRole);
// Grant a permission to a role and all its sub-roles
$role = Role::findByName('manager');
LaravelRolePermissionManager::grantPermissionToRoleAndSubRoles($role, 'edit_posts');
// Revoke a permission from a role and all its sub-roles
LaravelRolePermissionManager::revokePermissionFromRoleAndSubRoles($role, 'delete_users');
use CreativeCrafts\LaravelRolePermissionManager\Models\Permission;
use CreativeCrafts\LaravelRolePermissionManager\Models\Role;
use CreativeCrafts\LaravelRolePermissionManager\Policies\PermissionPolicy;
use CreativeCrafts\LaravelRolePermissionManager\Policies\RolePolicy;
class AuthServiceProvider extends ServiceProvider
{
protected $policies = [
Role::class => RolePolicy::class,
Permission::class => PermissionPolicy::class,
];
public function boot(): void
{
$this->registerPolicies();
}
}
// In a controller
public function update(Role $role)
{
$this->authorize('update', $role);
// Update logic here...
}