ForgotPasswordController.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
  6. use Illuminate\Support\Facades\Password;
  7. use Illuminate\Auth\Events\PasswordReset;
  8. use App\Models\User;
  9. use App\Mail\SecondEmailVerifyMailManager;
  10. use App\Utility\SmsUtility;
  11. use Mail;
  12. class ForgotPasswordController extends Controller
  13. {
  14. /*
  15. |--------------------------------------------------------------------------
  16. | Password Reset Controller
  17. |--------------------------------------------------------------------------
  18. |
  19. | This controller is responsible for handling password reset emails and
  20. | includes a trait which assists in sending these notifications from
  21. | your application to your users. Feel free to explore this trait.
  22. |
  23. */
  24. use SendsPasswordResetEmails;
  25. /**
  26. * Create a new controller instance.
  27. *
  28. * @return void
  29. */
  30. public function __construct()
  31. {
  32. $this->middleware('guest');
  33. }
  34. /**
  35. * Send a reset link to the given user.
  36. *
  37. * @param \Illuminate\Http\Request $request
  38. * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
  39. */
  40. public function sendResetLinkEmail(Request $request)
  41. {
  42. if (filter_var($request->email, FILTER_VALIDATE_EMAIL)) {
  43. $user = User::where('email', $request->email)->first();
  44. if ($user != null) {
  45. $user->verification_code = rand(100000,999999);
  46. $user->save();
  47. $array['view'] = 'emails.verification';
  48. $array['from'] = env('MAIL_FROM_ADDRESS');
  49. $array['subject'] = translate('Password Reset');
  50. $array['content'] = translate('Verification Code is ').$user->verification_code;
  51. Mail::to($user->email)->queue(new SecondEmailVerifyMailManager($array));
  52. return view('auth.passwords.reset');
  53. }
  54. else {
  55. flash(translate('No account exists with this email'))->error();
  56. return back();
  57. }
  58. }
  59. else{
  60. $user = User::where('phone', $request->email)->first();
  61. if ($user != null) {
  62. $user->verification_code = rand(100000,999999);
  63. $user->save();
  64. SmsUtility::password_reset($user);
  65. return view('otp_systems.frontend.auth.passwords.reset_with_phone');
  66. }
  67. else {
  68. flash(translate('No account exists with this phone number'))->error();
  69. return back();
  70. }
  71. }
  72. }
  73. }