middleware('guest'); } /** * Display the form to request a password reset link. */ public function showLinkRequestForm(): View { if (config('pixelfed.bouncer.cloud_ips.ban_logins')) { abort_if(BouncerService::checkIp(request()->ip()), 404); } usleep(random_int(100000, 300000)); return view('auth.passwords.email'); } /** * Validate the email for the given request. */ public function validateEmail(Request $request): void { if (config('pixelfed.bouncer.cloud_ips.ban_logins')) { abort_if(BouncerService::checkIp($request->ip()), 404); } usleep(random_int(100000, 3000000)); $rules = [ 'email' => 'required|email', ]; $messages = []; if (app('captcha.manager')->activeOn('forgotpassword')) { $captchaField = app('captcha.manager')->active()->responseField(); $rules[$captchaField] = 'required|captcha_verify'; $messages[$captchaField] = 'Failed to validate the captcha.'; } $request->validate($rules, $messages); } /** * Get the response for a failed password reset link. * * @param string $response * * @throws ValidationException */ public function sendResetLinkFailedResponse(Request $request, $response): RedirectResponse { if ($request->wantsJson()) { throw ValidationException::withMessages([ 'email' => [trans($response)], ]); } return back() ->withInput($request->only('email')) ->withErrors([ 'email' => trans($response), ]); } }