123456789101112131415161718192021222324252627282930313233343536 |
- <?php
- namespace App\Http\Middleware;
- use Closure;
- use Illuminate\Http\Request;
- use Symfony\Component\HttpFoundation\Response;
- use App\Models\GlobalUser;
- class GetTenancyByUsername
- {
- /**
- * Handle an incoming request.
- *
- * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
- */
- public function handle(Request $request, Closure $next): Response
- {
- $username = $request->input('username');
- if (!$username) {
- $username = $request->header('X-Username');
- }
- if ($username && !$request->hasHeader('X-Tenant')) {
- $user = GlobalUser::where('username', $username)->first();
- if ($user) {
- // 将租户 ID 添加到请求头 X-Tenant,交给 InitializeTenancyByRequestData::class 处理
- $request->headers->set('X-Tenant', $user->tenant_id);
- }
- }
- return $next($request);
- }
- }
|