public function postForgotPassword() { $validator = Validator::make(Input::all(), array('email' => 'required|email')); if ($validator->fails()) { return Redirect::route('account-forgot-password')->withErrors($validator)->withInput(); } else { $user = User::where('email', '=', Input::get('email')); if ($user->count()) { $user = $user->first(); // Generate a new code and password $code = str_random(60); $password = str_random(10); $user->code = $code; $user->password_temp = Hash::make($password); if ($user->save()) { Mail::send('emails.auth.forgot', array('link' => URL::route('account-recover', $code), 'username' => $user->username, 'password' => $password), function ($message) use($user) { $message->to($user->email, $user->username)->subject('Your new password'); }); Logging::password_recovery_email_sent_success($user->email); return Redirect::route('home')->with('global', 'We have sent you a new password by email.'); } } } Logging::password_recovery_email_sent_fail(Input::get('email')); return Redirect::route('account-forgot-password')->with('global', 'Could not request new password.'); }