protected function login(Request $request) { // we flash the request $request->flash(); // we sanitize the entries $request->replace(InputSanitizer::sanitize($request->all())); // we set the remember to false if we do not find it $request->merge(['remember' => $request->get('remember', false)]); // we check the inputs validity $rules = ['email' => 'required|email', 'password' => 'required', 'remember' => 'required|boolean']; if (!Validation::check($request->all(), $rules)) { return redirect()->back(); } // we try to authenticate the user try { if (!($user = Sentinel::authenticate($request->except('remember'), $request->get('remember')))) { Modal::alert([trans('auth.message.login.failure')], 'error'); return redirect()->back(); } // we notify the current user Modal::alert([trans('auth.message.login.success', ['name' => $user->first_name . " " . $user->last_name])], 'success'); // redirect to the url stored in the session if ($url = session()->get('previous_url')) { session()->forget('previous_url'); return redirect($url); } else { // or redirect to home return redirect(route('home')); } } catch (NotActivatedException $e) { // we log the error CustomLog::error($e); // we notify the current user Modal::alert([trans('auth.message.activation.failure'), trans('auth.message.activation.email.resend', ['email' => $request->get('email'), 'url' => route('account.activation_email', ['email' => $request->get('email')])])], 'error'); return redirect()->back(); } catch (ThrottlingException $e) { switch ($e->getType()) { case 'ip': // we notify the current user Modal::alert([trans('auth.message.throttle.ip', ['seconds' => $e->getDelay()])], 'error'); break; default: // we notify the current user Modal::alert([$e->getMessage()], 'error'); break; } return redirect()->back(); } catch (Exception $e) { // we notify the current user \Modal::alert([trans('auth.message.login.error'), trans('global.message.global.failure.contact.support', ['email' => config('settings.support_email')])], 'error'); return redirect()->back(); } }