user(); if (!$user) { return $next($request); } // Super-Admin: Muss einen Mandanten gewählt haben oder wird zur Auswahl geleitet if ($user->isSuperAdmin()) { $tenantId = session('current_tenant_id'); if (!$tenantId) { // Wenn kein Mandant gewählt, zur Auswahl leiten (außer bei bestimmten Routen) $allowedRoutes = ['tenants.select', 'tenants.switch', 'admin.tenants.index', 'admin.tenants.create', 'admin.tenants.store', 'admin.tenants.edit', 'admin.tenants.update', 'admin.tenants.destroy']; if (!in_array($request->route()->getName(), $allowedRoutes)) { return redirect()->route('tenants.select') ->with('error', 'Bitte wählen Sie einen Mandanten aus.'); } } else { // Setze den aktuellen Mandanten für Queries app()->instance('current_tenant_id', $tenantId); } } // Tenant-Admin: Verwende automatisch seinen Mandanten elseif ($user->isTenantAdmin()) { app()->instance('current_tenant_id', $user->tenant_id); } return $next($request); } }