middleware('guest:frontend')->except('logout'); } /** * Get the guard to be used during authentication. * * @return \Illuminate\Contracts\Auth\StatefulGuard */ protected function guard() { return Auth::guard('frontend'); } /** * Show the application's login form. * * @return \Illuminate\View\View */ public function showLoginForm() { return view('fo.auth.login'); } /** * The user has been authenticated. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Database\Eloquent\Model $user * @return mixed * @phpcs:disable Squiz.Commenting.FunctionComment.TypeHintMissing, Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed */ protected function authenticated(Request $request, Model $user) { $user->last_connection = \now(); $user->saveOrFail(); Session::flash('info', trans('Vous êtes à présent connecté')); } /** * The user has logged out of the application. * * @param \Illuminate\Http\Request $request * @return mixed * @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass */ protected function loggedOut(Request $request) { Session::flash('info', trans('Vous êtes à présent déconnecté')); } /** * Get the post register / login redirect path. * * @return string */ public function redirectPath() { return response()->redirectToIntended()->getTargetUrl(); } /** * Attempt to log the user into the application. * * @param \Illuminate\Http\Request $request * @return boolean */ protected function attemptLogin(Request $request): bool { $credentials = $this->credentials($request); $customerModel = Customer::query()->where('email', Arr::get($credentials, 'email'))->first(); $crmCustomer = CrmCustomer::findWithEmail(Arr::get($credentials, 'email')); // Check database customer. if (!$customerModel) { // Check crm customer. if (!$crmCustomer) { return false; } /** @var \App\Models\Customer $customerModel */ $customerModel = new Customer(Arr::only($crmCustomer->jsonSerialize(), [ 'firstname', 'lastname', 'email', ])); $customerModel->hashcode = $crmCustomer->hashcode; if (!$customerModel->saveOrFail()) { return false; } } else { // Check crm customer. if (!$crmCustomer) { $customerModel->delete(); return false; } } //end if try { CrmCustomer::login(Arr::get($credentials, 'email'), Arr::get($credentials, 'password')); } catch (Exception $ex) { Log::error($ex); return false; } $this->guard()->loginUsingId($customerModel->getKey()); return true; } }