Files
ntspi-app/app/Ship/Middleware/EnsureUserIsSuperadmin.php
F4ilji 48ffd217b8 fix: secure deploy API, remove Docker-in-Docker, add DB backup
- Add web+superadmin middleware to /api/deploy routes
- Return JSON 403 in EnsureUserIsSuperadmin for API requests
- Remove Docker CLI and docker.sock from app container
- Replace docker compose restart with supervisorctl
- Add mysqldump backup step before migrations
2026-07-02 17:26:38 +05:00

33 lines
862 B
PHP
Executable File

<?php
namespace App\Ship\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Inertia\Inertia;
use Symfony\Component\HttpFoundation\Response;
class EnsureUserIsSuperadmin
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next)
{
if (!Auth::check() || !Auth::user()->hasRole('super_admin')) {
if ($request->expectsJson() || $request->is('api/*')) {
return response()->json(['error' => 'Forbidden'], 403);
}
return Inertia::render('Error', ['status' => 403])
->toResponse($request)
->setStatusCode(403);
}
return $next($request);
}
}