Files
AggloSign/backend/app/Http/Middleware/RestrictAdminNetwork.php
T
2026-09-30 16:27:32 +02:00

26 lines
725 B
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\IpUtils;
use Symfony\Component\HttpFoundation\Response;
/**
* Limite /admin aux réseaux internes (SIGNATURE_ADMIN_ALLOWED_CIDRS), en plus du SSO.
* Derrière Nginx, configurer TrustProxies pour que $request->ip() soit l'IP réelle.
*/
class RestrictAdminNetwork
{
public function handle(Request $request, Closure $next): Response
{
$cidrs = config('signature.admin_allowed_cidrs');
if ($cidrs && ! IpUtils::checkIp($request->ip(), $cidrs)) {
abort(403, 'Back-office accessible uniquement depuis le réseau CABM.');
}
return $next($request);
}
}