/** * @param Request $request * @param RequestConfiguration $configuration * @param UserInterface $user * @param string $newPassword * * @return RedirectResponse */ protected function handleResetPassword(Request $request, RequestConfiguration $configuration, UserInterface $user, $newPassword) { $user->setPlainPassword($newPassword); $user->setPasswordResetToken(null); $user->setPasswordRequestedAt(null); $dispatcher = $this->container->get('event_dispatcher'); $dispatcher->dispatch(UserEvents::PRE_PASSWORD_RESET, new GenericEvent($user)); $this->manager->flush(); $this->addFlash('success', 'sylius.user.password.reset.success'); $dispatcher->dispatch(UserEvents::POST_PASSWORD_RESET, new GenericEvent($user)); if (!$configuration->isHtmlRequest()) { return $this->viewHandler->handle($configuration, View::create(null, Response::HTTP_NO_CONTENT)); } $redirectRouteName = $request->attributes->get('_sylius[redirect]', 'sylius_user_security_login', true); return new RedirectResponse($this->container->get('router')->generate($redirectRouteName)); }