Код: Выделить всё
public function handle(Request $request, Closure $next): Response
{
abort_if(Gate::denies('admin_access'), 403);
return $next($request);
}
< /code>
У меня есть еще одно промежуточное программное обеспечение, которое инициализации Gates < /p>
authgates.php
public function handle(Request $request, Closure $next): mixed
{
$user = auth()->user();
if ($user) {
$roles = Role::with('permissions')->get();
$permissionsArray = [];
foreach ($roles as $role) {
foreach ($role->permissions as $permission) {
$permissionsArray[$permission->title][] = $role->id;
}
}
foreach ($permissionsArray as $title => $roles) {
Gate::define($title, function (User $user) use ($roles) {
return count(array_intersect($user->roles->pluck('id')->toArray(), $roles)) > 0;
});
}
}
return $next($request);
}
Код: Выделить всё
...
->withMiddleware(function (Middleware $middleware) {
$middleware->appendToGroup('api', [
AuthGates::class,
]);
$middleware->append(Admin::class);
$middleware->statefulApi();
})
...
Код: Выделить всё
Route::middleware('auth:sanctum')->group(function () {
...
Route::prefix('admin')->group(function () {
Route::prefix('users')->group(function () {
Route::get('/', [AdminUserController, 'index']);
...
});
})->middleware(Admin::class);
});
< /code>
Проблема в том, что я бы сделал, я получаю 403 | Запрещено
Как я могу защитить маршруты/api/admin/*
Подробнее здесь: https://stackoverflow.com/questions/797 ... middleware