diff --git a/src/Wallabag/UserBundle/Controller/ResettingController.php b/src/Wallabag/UserBundle/Controller/ResettingController.php deleted file mode 100644 index 62e27d005..000000000 --- a/src/Wallabag/UserBundle/Controller/ResettingController.php +++ /dev/null @@ -1,75 +0,0 @@ -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(), - )); - } -} diff --git a/src/Wallabag/UserBundle/EventListener/PasswordResettingListener.php b/src/Wallabag/UserBundle/EventListener/PasswordResettingListener.php new file mode 100644 index 000000000..2fdcb4419 --- /dev/null +++ b/src/Wallabag/UserBundle/EventListener/PasswordResettingListener.php @@ -0,0 +1,41 @@ +router = $router; + } + + /** + * {@inheritDoc} + */ + public static function getSubscribedEvents() + { + return array( + FOSUserEvents::RESETTING_RESET_SUCCESS => 'onPasswordResettingSuccess', + ); + } + + public function onPasswordResettingSuccess(FormEvent $event) + { + $url = $this->router->generate('homepage'); + + $event->setResponse(new RedirectResponse($url)); + } +} diff --git a/src/Wallabag/UserBundle/Resources/config/services.yml b/src/Wallabag/UserBundle/Resources/config/services.yml index 93e04d592..bf9e036ae 100644 --- a/src/Wallabag/UserBundle/Resources/config/services.yml +++ b/src/Wallabag/UserBundle/Resources/config/services.yml @@ -8,3 +8,10 @@ services: - "%scheb_two_factor.email.sender_name%" - "%wallabag_support_url%" - "%wallabag_url%" + + wallabag_user.password_resetting: + class: Wallabag\UserBundle\EventListener\PasswordResettingListener + arguments: + - "@router" + tags: + - { name: kernel.event_subscriber }