check()) { Auth::guard('contact')->logout(); } if ($request->segment(3) && config('ninja.db.multi_db_enabled')) { if (MultiDB::findAndSetDbByContactKey($request->segment(3))) { if($client_contact = ClientContact::where('contact_key', $request->segment(3))->first()){ Auth::guard('contact')->login($client_contact, true); return redirect()->to('client/dashboard'); } } } elseif ($request->segment(2) && $request->segment(2) == 'key_login' && $request->segment(3)) { if ($client_contact = ClientContact::where('contact_key', $request->segment(3))->first()) { auth()->guard('contact')->login($client_contact, true); return redirect()->to('client/dashboard'); } } elseif ($request->has('client_hash') && config('ninja.db.multi_db_enabled')) { if (MultiDB::findAndSetDbByClientHash($request->input('client_hash'))) { if($client = Client::where('client_hash', $request->input('client_hash'))->first()){ auth()->guard('contact')->login($client->primary_contact()->first(), true); return redirect()->to('client/dashboard'); } } } elseif ($request->has('client_hash')) { if ($client = Client::where('client_hash', $request->input('client_hash'))->first()) { Auth::guard('contact')->login($client->primary_contact()->first(), true); return redirect()->to('client/dashboard'); } } elseif ($request->segment(2) && $request->segment(2) == 'magic_link' && $request->segment(3)) { $contact_email = Cache::get($request->segment(3)); if($client_contact = ClientContact::where('email', $contact_email)->first()){ Auth::guard('contact')->login($client_contact, true); if ($request->query('redirect') && !empty($request->query('redirect'))) { return redirect()->to($request->query('redirect')); } return redirect()->to('client/dashboard'); } } return $next($request); } }