ForgotUsernameController.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Recipient;
  5. use Illuminate\Http\Request;
  6. class ForgotUsernameController extends Controller
  7. {
  8. /**
  9. * Create a new controller instance.
  10. *
  11. * @return void
  12. */
  13. public function __construct()
  14. {
  15. $this->middleware('guest');
  16. $this->middleware('throttle:3,1')->only('sendReminderEmail');
  17. }
  18. /**
  19. * Display the form to request a password reset link.
  20. *
  21. * @return \Illuminate\View\View
  22. */
  23. public function show()
  24. {
  25. return view('auth.usernames.email');
  26. }
  27. /**
  28. * Send a reset link to the given user.
  29. *
  30. * @param \Illuminate\Http\Request $request
  31. * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
  32. */
  33. public function sendReminderEmail(Request $request)
  34. {
  35. $this->validateEmail($request);
  36. $recipient = Recipient::all()->where('email', $request->email)->first();
  37. if (isset($recipient)) {
  38. $recipient->sendUsernameReminderNotification();
  39. }
  40. return back()->with('status', 'A reminder has been sent if that email exists.');
  41. }
  42. /**
  43. * Validate the email for the given request.
  44. *
  45. * @param \Illuminate\Http\Request $request
  46. * @return void
  47. */
  48. protected function validateEmail(Request $request)
  49. {
  50. $request->validate(['email' => 'required|email:rfc,dns']);
  51. }
  52. }