structure_id); // S'il s'agit d'un SuperAdmin, il peut avoir choisi une structure spécifique en session if ($user->hasRole('SuperAdmin')) { if ($request->session()->has('target_structure_id')) { $targetId = $request->session()->get('target_structure_id'); // On modifie UNIQUEMENT la configuration globale pour filtrer les données (BelongsToStructure scope) config(['tenant.structure_id' => $targetId]); } else { // Par défaut, s'il n'a pas ciblé de structure, vue globale (tous les locataires) config(['tenant.structure_id' => null]); // Et par défaut on remet sa session sur son origine si elle était vide $request->session()->put('target_structure_id', null); } } else { // Utilisateur SaaS standard : on fixe la config globale à SA structure config(['tenant.structure_id' => $user->structure_id]); // On met de force cette valeur dans sa session $request->session()->put('target_structure_id', $user->structure_id); } } return $next($request); } }