get('fos_user.resetting.form.factory'); /** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */ $userManager = $this->get('fos_user.user_manager'); /** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */ $dispatcher = $this->get('event_dispatcher'); $user = $userManager->findUserByConfirmationToken($token); if (null === $user) { throw new NotFoundHttpException(sprintf('The user with "confirmation token" does not exist for value "%s"', $token)); } $event = new GetResponseUserEvent($user, $request); $dispatcher->dispatch(FOSUserEvents::RESETTING_RESET_INITIALIZE, $event); if (null !== $event->getResponse()) { return $event->getResponse(); } $form = $formFactory->createForm(); $form->setData($user); $form->handleRequest($request); if ($form->isValid()) { $event = new FormEvent($form, $request); $dispatcher->dispatch(FOSUserEvents::RESETTING_RESET_SUCCESS, $event); $userManager->updateUser($user); if (null === $response = $event->getResponse()) { $this->get('session')->getFlashBag()->add( 'notice', 'Password updated' ); $url = $this->generateUrl('homepage'); $response = new RedirectResponse($url); } $dispatcher->dispatch(FOSUserEvents::RESETTING_RESET_COMPLETED, new FilterUserResponseEvent($user, $request, $response)); return $response; } return $this->render('FOSUserBundle:Resetting:reset.html.twig', array( 'token' => $token, 'form' => $form->createView(), )); } }