validateTokenAndFetchUser($token); } public static function removeResetRequest(string $token) { return self::$reset_password_helper->removeResetRequest($token); } public static function sendEmailConfirmation(UserInterface $user): void { $email = (new TemplatedEmail()) ->from(new Address(Common::config('site', 'email'), Common::config('site', 'nickname'))) ->to($user->getOutgoingEmail()) ->subject(_m('Please Confirm your Email')) ->htmlTemplate('security/confirmation_email.html.twig'); $signatureComponents = self::$verify_email_helper->generateSignature( 'verify_email', $user->getId(), $user->getOutgoingEmail() ); $context = $email->getContext(); $context['signedUrl'] = $signatureComponents->getSignedUrl(); $context['expiresAt'] = $signatureComponents->getExpiresAt(); $email->context($context); self::send($email); } public function send($email) { return self::$mailer_helper->send($email); } /** * @throws VerifyEmailExceptionInterface */ public function handleEmailConfirmation(Request $request, UserInterface $user): void { self::$verify_email_helper->validateEmailConfirmation($request->getUri(), $user->getId(), $user->getOutgoingEmail()); $user->setIsEmailVerified(true); DB::persist($user); DB::flush(); } public function processSendingPasswordResetEmail(string $emailFormData, Controller $controller) { try { $user = DB::findOneBy('local_user', ['outgoing_email' => $emailFormData]); $reset_token = self::$reset_password_helper->generateResetToken($user); // Found a user } catch (NotFoundException | ResetPasswordExceptionInterface) { // Not found, do not reveal whether a user account was found or not. throw new RedirectException('check_email'); } $email = (new TemplatedEmail()) ->from(new Address('foo@email.com', 'FOO NAME')) ->to($user->getOutgoingEmail()) ->subject('Your password reset request') ->htmlTemplate('reset_password/email.html.twig') ->context([ 'resetToken' => $reset_token, ]); self::send($email); // Store the token object in session for retrieval in check-email route. $controller->setTokenObjectInSession($reset_token); throw new RedirectException('check_email'); } }