forked from admin/services_core
29 lines
678 B
PHP
29 lines
678 B
PHP
<?php
|
|
|
|
namespace App\Http\Middleware;
|
|
|
|
use Closure;
|
|
use Illuminate\Http\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class EnsureMenuResourcePermission
|
|
{
|
|
public function handle(Request $request, Closure $next, string $menuSlug): Response
|
|
{
|
|
$permission = match ($request->method()) {
|
|
'GET', 'HEAD' => 'view',
|
|
'POST' => 'create',
|
|
'PUT', 'PATCH' => 'update',
|
|
'DELETE' => 'delete',
|
|
default => null,
|
|
};
|
|
|
|
if (! $permission) {
|
|
abort(405);
|
|
}
|
|
|
|
return app(EnsureMenuPermission::class)
|
|
->handle($request, $next, $menuSlug, $permission);
|
|
}
|
|
}
|