user(); try { if (!Site::whereId($user->selected_site_id)->exists()) { $user->selected_site_id = null; $user->save(); } if ($request->query('userSite')) { /** @var \App\Models\Site|null */ $site = $user->role->equals(Role::admin()) ? Site::whereId($request->query('userSite'))->first() : $user->sites()->where('site_id', $request->query('userSite'))->first(); if ($site) { $user->selected_site_id = $site->id; $user->saveOrFail(); } } // Select user site if (!$user->selected_site_id) { /** @var \App\Models\Site */ $site = $user->role->equals(Role::admin()) ? Site::firstOrFail() : $user->sites()->firstOrFail(); $user->selected_site_id = $site->id; $user->saveOrFail(); } } catch (ModelNotFoundException $e) { Log::warning("$user->name n'as pas de site administrable."); auth()->logout(); Session::flash('error', "$user->name n'as pas de site administrable."); return \response()->redirectToRoute('bo.login'); } return $next($request); } }