<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
shakil3334413 / laravel-role-permissions example snippets
use Illuminate\Foundation\Auth\User as Authenticatable;
use Shakil\Permissions\Concerns\HasRoles;
use Shakil\Permissions\Contracts\HasPermissions;
class User extends Authenticatable implements HasPermissions
{
use HasRoles;
// Keep your existing traits, attributes, and methods.
}
$modules = Module::with([
'directPermissions',
'submodules.permissions',
])->get();
$sales->permissions; // All permissions under Sales.
$sales->directPermissions; // Only permissions without a submodule.
$orders->permissions; // Only permissions in Orders.
// $user is an existing user selected by trusted administration code.
// Replace every web role with exactly one role; app roles are preserved.
$user->setRole('editor', 'web');
// Add one app role.
$user->assignRole('viewer', 'app');
// After creating the manager role in the web scope, add several web roles.
$user->assignRoles(['editor', 'manager'], 'web');
// Replace web assignments with this exact set.
$user->syncRoles(['editor', 'manager'], 'web');
// Clear web roles while preserving app roles.
$user->syncRoles([], 'web');
// Remove a specific app assignment.
$user->removeRole('viewer', 'app');
'role_mode' => 'single',
// routes/web.php
Route::get('/orders', [OrderController::class, 'index'])
->middleware(['auth', 'can:permission:web:orders.view']);
// routes/api.php — if your application uses Sanctum.
Route::get('/orders', [ApiOrderController::class, 'index'])
->middleware(['auth:sanctum', 'can:permission:app:orders.view']);