coolify/app/Http/Middleware/ApiAbility.php

30 lines
811 B
PHP
Raw Normal View History

<?php
namespace App\Http\Middleware;
2025-01-07 13:52:08 +00:00
use Exception;
use Illuminate\Auth\AuthenticationException;
use Laravel\Sanctum\Http\Middleware\CheckForAnyAbility;
class ApiAbility extends CheckForAnyAbility
{
public function handle($request, $next, ...$abilities)
{
try {
2024-12-09 09:52:38 +00:00
if ($request->user()->tokenCan('root')) {
return $next($request);
}
return parent::handle($request, $next, ...$abilities);
2025-01-07 13:52:08 +00:00
} catch (AuthenticationException $e) {
return response()->json([
'message' => 'Unauthenticated.',
], 401);
2025-01-07 13:52:08 +00:00
} catch (Exception $e) {
return response()->json([
'message' => 'Missing required permissions: '.implode(', ', $abilities),
], 403);
}
}
}