LMIV-SNACKAUTOMAT/app/Http/Middleware/EnsureTenantSession.php

36 lines
1014 B
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\Response;
class EnsureTenantSession
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
$user = Auth::user();
if ($user && $user->isTenantAdmin()) {
// Mandanten-Admins müssen immer ihren eigenen Mandanten in der Session haben
if (session('current_tenant_id') !== $user->tenant_id) {
session(['current_tenant_id' => $user->tenant_id]);
// Lade auch den Mandanten in die Session
if ($user->tenant) {
session(['current_tenant' => $user->tenant]);
}
}
}
return $next($request);
}
}