/** * @param User $user * @param bool $notifyUser * @return string */ private function requestPasswordResetTokenByUser(User $user, $notifyUser = true) { $receiver = Receiver::fromUser($user); $token = $this->tokenManipulator->createResetPasswordToken($user); if ($notifyUser) { $url = $this->urlGenerator->generate('login_renew_password', ['token' => $token->getValue()], true); $mail = MailRequestPasswordUpdate::create($this->application, $receiver); $mail->setLogin($user->getLogin()); $mail->setButtonUrl($url); $mail->setExpiration(new \DateTime('+1 day')); $this->mailer->deliver($mail); } return $token->getValue(); }
public function testCreateResetPasswordToken() { $manipulator = new TokenManipulator(self::$DI['app']['orm.em'], self::$DI['app']['random.low'], self::$DI['app']['repo.tokens'], self::$DI['app']['tmp.download.path']); $token = $manipulator->createResetPasswordToken(self::$DI['user']); $this->assertNull($token->getData()); $this->assertSame(self::$DI['user'], $token->getUser()); $this->assertSame(TokenManipulator::TYPE_PASSWORD, $token->getType()); $this->assertDateNear('+1 day', $token->getExpiration()); }