public function handle(FormInterface $form, Request $request) { $form->handleRequest($request); if (!$form->isValid()) { return false; } $data = $form->getData(); if ($form->isSubmitted()) { $user = $this->userManager->findUserByEmail($data['email']); if (is_null($user)) { $form->addError(new FormError($this->translator->trans('security.resetting.request.errors.email_not_found'))); return false; } if ($user->isPasswordRequestNonExpired($this->tokenTll)) { $form->addError(new FormError($this->translator->trans('security.resetting.request.errors.password_already_requested'))); return false; } if ($user->getConfirmationToken() === null) { $user->setConfirmationToken($this->tokenGenerator->generateToken()); } $user->setPasswordRequestedAt(new \DateTime()); $this->userManager->resettingRequest($user); } return true; }
public function testGenerateToken() { $tokenGenerator = new TokenGenerator(); $token = $tokenGenerator->generateToken(); $this->assertTrue(is_string($token)); $this->assertGreaterThan(0, strlen($token)); }