public function testCustomFields() { $user = $this->userManager->createUser('*****@*****.**', 'pass'); $user->setCustomField('field1', 'foo'); $user->setCustomField('field2', 'bar'); $this->userManager->insert($user); $storedUser = $this->userManager->getUser($user->getId()); $this->assertEquals('foo', $storedUser->getCustomField('field1')); $this->assertEquals('bar', $storedUser->getCustomField('field2')); // Search by two custom fields. $foundUser = $this->userManager->findOneBy(array('customFields' => array('field1' => 'foo', 'field2' => 'bar'))); $this->assertEquals($user, $foundUser); // Search by one custom field and one standard property. $foundUser = $this->userManager->findOneBy(array('id' => $user->getId(), 'customFields' => array('field2' => 'bar'))); $this->assertEquals($user, $foundUser); // Failed search returns null. $foundUser = $this->userManager->findOneBy(array('customFields' => array('field1' => 'foo', 'field2' => 'does-not-exist'))); $this->assertNull($foundUser); }
/** * @param Application $app * @param Request $request * @param string $token * @return \Symfony\Component\HttpFoundation\RedirectResponse * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ public function resetPasswordAction(Application $app, Request $request, $token) { if (!$this->isPasswordResetEnabled()) { throw new NotFoundHttpException('Password resetting is not enabled.'); } $tokenExpired = false; $user = $this->userManager->findOneBy(array('confirmationToken' => $token)); if (!$user) { $tokenExpired = true; } else { if ($user->isPasswordResetRequestExpired($app['user.options']['passwordReset']['tokenTTL'])) { $tokenExpired = true; } } if ($tokenExpired) { $app['session']->getFlashBag()->set('alert', 'Sorry, your password reset link has expired.'); return $app->redirect($app['url_generator']->generate('user.login')); } $error = ''; if ($request->isMethod('POST')) { // Validate the password $password = $request->request->get('password'); if ($password != $request->request->get('confirm_password')) { $error = 'Passwords don\'t match.'; } else { if ($error = $this->userManager->validatePasswordStrength($user, $password)) { } else { // Set the password and log in. $this->userManager->setUserPassword($user, $password); $user->setConfirmationToken(null); $user->setEnabled(true); $this->userManager->update($user); $this->userManager->loginAsUser($user); $app['session']->getFlashBag()->set('alert', 'Your password has been reset and you are now signed in.'); return $app->redirect($app['url_generator']->generate('user.view', array('id' => $user->getId()))); } } } return $app['twig']->render($this->getTemplate('reset-password'), array('layout_template' => $this->getTemplate('layout'), 'user' => $user, 'token' => $token, 'error' => $error)); }