Files
2026-04-21 16:22:02 +07:00

41 lines
967 B
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Models\Core\Program;
class ResolveProgram
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
$host = $request->getHost();
$parts = explode('.', $host);
if ($host === 'localhost' || filter_var($host, FILTER_VALIDATE_IP)) {
return $next($request);
}
if (count($parts) < 3) {
return $next($request);
}
$subdomain = $parts[0];
$program = Program::where('sub_domain', $subdomain)->first();
if (!$program) {
return $next($request);
}
app()->instance('SystemProgram', $program);
return $next($request);
}
}