Exemplo n.º 1
0
 public function resetPost(Requests\Auth\ResetPassword $request, AppMailer $mailer)
 {
     $email = $request->input('email');
     $user = User::where('email', $email)->first();
     if (!$user) {
         session()->flash('error', 'No account found with that email!');
         return redirect()->back()->withInput();
     }
     if (!$user->verified()) {
         session()->flash('error', 'You must confirm your email before resetting your password!');
         return redirect()->route('home');
     }
     if (!$user->passwordReset) {
         $reset = $user->passwordReset()->create(['token' => str_random(30), 'created_at' => Carbon::now()]);
         $mailer->sendPasswordResetTo($reset->user);
         session()->flash('success', 'Password reset email has been sent!');
         return redirect()->route('home');
     }
     if ($user->passwordReset->created_at > Carbon::now()->subMinutes(15)) {
         session()->flash('error', 'You must wait ' . $user->passwordReset->created_at->addMinutes(15)->diffForHumans() . ' before requesting a new reset email!');
         return redirect()->back()->withInput();
     }
     $user->passwordReset()->update(['token' => str_random(30), 'created_at' => Carbon::now()]);
     $mailer->sendPasswordResetTo($user);
     session()->flash('success', 'Password reset email has been resent!');
     return redirect()->route('home');
 }