/** * @param Request $request * * @return null|RedirectResponse|Response */ public function editAuthenticationAction(Request $request) { $user = $this->getUser(); if (!is_object($user) || !$user instanceof UserInterface) { throw new AccessDeniedException('This user does not have access to this section.'); } /** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */ $dispatcher = $this->get('event_dispatcher'); $event = new GetResponseUserEvent($user, $request); if (null !== $event->getResponse()) { return $event->getResponse(); } /** @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */ $formFactory = $this->get('fos_user.profile.form.factory'); $form = $formFactory->createForm(); $form->setData($user); $form->handleRequest($request); if ($form->isValid()) { /** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */ $userManager = $this->get('fos_user.user_manager'); $userManager->updateUser($user); $this->setFlash('sonata_user_success', 'profile.flash.updated'); $response = new RedirectResponse($this->generateUrl('sonata_user_profile_show')); return $response; } return $this->render('SonataUserBundle:Profile:edit_authentication.html.twig', array('form' => $form->createView(), 'breadcrumb_context' => 'user_profile')); }
public function registerAction(Request $request) { /** @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */ $formFactory = $this->get('fos_user.registration.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->createUser(); $user->setEnabled(true); $event = new GetResponseUserEvent($user, $request); //$dispatcher->dispatch(FOSUserEvents::REGISTRATION_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::REGISTRATION_SUCCESS, $event); $userManager->updateUser($user); if (null === ($response = $event->getResponse())) { $url = $this->generateUrl('msi_user_admin_add_user'); $response = new RedirectResponse($url); } $session = $request->getSession(); $session->getFlashBag()->add('info_user_add', $this->get('translator')->trans('msi.core.admin.add.user.info', array('%username%' => $user->getUsername()), 'Admin')); //$dispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response)); return $response; } return $this->render('MSIUserBundle:Registration:register.html.twig', array('form' => $form->createView())); }
public function onRegistrationConfirm(GetResponseUserEvent $event) { if (null === $event->getResponse()) { $url = $this->router->generate($this->userDiscriminator->getCurrentUserConfig()->getRoutePrefix() . '_registration_confirmed'); $event->setResponse(new RedirectResponse($url)); } }
/** * Change user password */ public function confirmResetPasswordAction(Request $request) { $token = $request->get('token'); /** @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */ $formFactory = $this->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); if (null !== $event->getResponse()) { return $event->getResponse(); } $form = $formFactory->createForm(); $form->setData($user); $form->handleRequest($request); $error = ''; if ($request->getMethod() == 'POST') { if ($form->isValid()) { $event = new FormEvent($form, $request); $user->setConfirmationToken(null); $user->setPasswordRequestedAt(null); $userManager->updateUser($user); if (null === ($response = $event->getResponse())) { $url = $this->generateUrl('enhavo_dashboard_index'); $response = new RedirectResponse($url); $this->authenticateUser($user, $response); return $response; } } else { foreach ($form->getErrors() as $errorMessage) { $error = $errorMessage; } } } return $this->render('EnhavoUserBundle:Security:reset-password-confirm.html.twig', array('token' => $token, 'error' => $error, 'form' => $form->createView())); }
/** * @Route("/resetting/reset/{token}", name="userBundle_reset_user", requirements={"id" = "\d+"}) * @Template() */ public function resetAction(Request $request, $token) { /** * @var $formFactory \FOS\UserBundle\Form\Factory\FactoryInterface */ $formFactory = $this->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); if (null !== $event->getResponse()) { return $event->getResponse(); } $form = $this->createFormBuilder($user)->add('plainPassword', 'repeated', array('type' => 'password', 'required' => true, 'first_options' => array('label' => 'form.password'), 'second_options' => array('label' => 'form.password_confirmation'), 'invalid_message' => 'fos_user.password.mismatch', 'translation_domain' => 'FOSUserBundle'))->getForm(); $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())) { $url = $this->generateUrl('user_reset_user_confirmation'); $response = new RedirectResponse($url); } $dispatcher->dispatch(FOSUserEvents::RESETTING_RESET_COMPLETED, new FilterUserResponseEvent($user, $request, $response)); return $response; } return $this->render('UserBundle:Resetting:reset.html.twig', array('token' => $token, 'form' => $form->createView())); }