/** * {@inheritdoc} */ public function handle(Form $form, $webSpaceKey, array $options = []) { $data = $form->getData(); $usernameEmail = $data[PasswordForgetType::FIELD_NAME]; $user = $this->userRepository->findUserByIdentifier($usernameEmail); if (!$user) { return $user; } if ($user instanceof BaseUser) { $user->setPasswordResetToken($this->getUniqueToken()); $expireDateTime = (new \DateTime())->add(new \DateInterval('PT24H')); $user->setPasswordResetTokenExpiresAt($expireDateTime); $user->setPasswordResetTokenEmailsSent($user->getPasswordResetTokenEmailsSent() + 1); } $this->entityManager->persist($user); $this->entityManager->flush(); return $user; }