public function findUserByIdentifier($identifier)
{
$qb = $this->getUserWithPermissionsQuery()->where('user.email=:email')->orWhere('user.username=:username');
$query = $qb->getQuery();
$query->setParameter('email', $identifier);
$query->setParameter('username', $identifier);
return $query->getSingleResult();
}
/** * {@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; }