Added Feature Permission

master
sundayenglish 4 weeks ago
parent 6812234119
commit fe7a7e5970
  1. 18
      app/Exceptions/Renderers/PermissionExceptionRenderer.php
  2. 18
      bootstrap/app.php

@ -0,0 +1,18 @@
<?php
namespace App\Exceptions\Renderers;
use Illuminate\Http\Request;
use Spatie\Permission\Exceptions\UnauthorizedException;
use Symfony\Component\HttpFoundation\Response;
class PermissionExceptionRenderer
{
public function __invoke(UnauthorizedException $e, Request $request): Response
{
return response()->json([
'message' => 'Bạn không có quyền truy cập.',
'required' => $e->getRequiredRoles() ?? $e->getRequiredPermissions(),
], 403);
}
}

@ -3,23 +3,27 @@
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use App\Exceptions\Renderers\PermissionExceptionRenderer;
use Spatie\Permission\Exceptions\UnauthorizedException;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
web: __DIR__ . '/../routes/web.php',
api: __DIR__ . '/../routes/api.php',
commands: __DIR__ . '/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware): void {
//
// Đăng ký middleware nếu cần
})
->withExceptions(function (Exceptions $exceptions): void {
//
// Custom render UnauthorizedException from Spatie
$exceptions->renderable(function (UnauthorizedException $e, $request) {
return (new \App\Exceptions\Renderers\PermissionExceptionRenderer)($e, $request);
});
})
->withProviders([
App\Providers\AuthServiceProvider::class,
App\Providers\MiddlewareServiceProvider::class, //
App\Providers\MiddlewareServiceProvider::class,
])
->create();

Loading…
Cancel
Save