ForgotUsernameController.php 1.6 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::select(['id', 'user_id', 'email', 'should_encrypt', 'fingerprint', 'email_verified_at'])->whereNotNull('email_verified_at')->get()->firstWhere('email', strtolower($request->email));
  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']);
  51. }
  52. }