25 lines
569 B
PHP
25 lines
569 B
PHP
<?php
|
|
|
|
namespace App\Middleware;
|
|
|
|
use App\Models\Tenant;
|
|
use Closure;
|
|
use Illuminate\Http\Request;
|
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
|
|
|
class IdentifyTenant
|
|
{
|
|
public function handle(Request $request, Closure $next)
|
|
{
|
|
$host = $request->getHost();
|
|
$tenant = Tenant::where(['url' => $host, 'has_active_instance' => true])->first();
|
|
|
|
if (! $tenant) {
|
|
throw new NotFoundHttpException('Tenant not found');
|
|
}
|
|
|
|
app()->instance('tenant', $tenant);
|
|
return $next($request);
|
|
}
|
|
}
|