public function sendEmailAction() { /** @var Request $request */ $request = Request::createFromGlobals(); if ($request->isXmlHttpRequest()) { $username = $request->request->get('username'); /** @var $user UserInterface */ $user = $this->container->get('fos_user.user_manager')->findUserByUsernameOrEmail($username); if (null === $user) { return $this->container->get('templating')->renderResponse('FOSUserBundle:Resetting:request.html.' . $this->getEngine(), array('invalid_username' => $username)); } if ($user->isPasswordRequestNonExpired($this->container->getParameter('fos_user.resetting.token_ttl'))) { return $this->container->get('templating')->renderResponse('FOSUserBundle:Resetting:passwordAlreadyRequested.html.' . $this->getEngine()); } if (null === $user->getConfirmationToken()) { /** @var $tokenGenerator \FOS\UserBundle\Util\TokenGeneratorInterface */ $tokenGenerator = $this->container->get('fos_user.util.token_generator'); $user->setConfirmationToken($tokenGenerator->generateToken()); } $this->container->get('fos_user.mailer')->sendResettingEmailMessage($user); $user->setPasswordRequestedAt(new \DateTime()); $this->container->get('fos_user.user_manager')->updateUser($user); return $this->container->get('templating')->renderResponse('FOSUserBundle:Resetting:checkEmail.html.' . $this->getEngine(), array('email' => $username)); } else { return parent::sendEmailAction($request); } }
public function sendEmailAction(Request $request) { if ($request->isXmlHttpRequest()) { $data = array(); $response = new \Symfony\Component\HttpFoundation\JsonResponse(); $username = $request->request->get('username'); /** @var $user UserInterface */ $user = $this->container->get('fos_user.user_manager')->findUserByUsernameOrEmail($username); if (null === $user) { $data['message'] = $this->trans('resetting.request.invalid_username', array('%username%' => $username)); $response->setData($data)->setStatusCode(400); return $response; } if ($user->isPasswordRequestNonExpired($this->container->getParameter('fos_user.resetting.token_ttl'))) { $data['message'] = $this->trans('resetting.password_already_requested', array()); $response->setData($data)->setStatusCode(400); return $response; } if (null === $user->getConfirmationToken()) { /** @var $tokenGenerator \FOS\UserBundle\Util\TokenGeneratorInterface */ $tokenGenerator = $this->container->get('fos_user.util.token_generator'); $user->setConfirmationToken($tokenGenerator->generateToken()); } $this->container->get('fos_user.mailer')->sendResettingEmailMessage($user); $user->setPasswordRequestedAt(new \DateTime()); $this->container->get('fos_user.user_manager')->updateUser($user); $data['message'] = $this->trans('resetting.check_email', array('%email%' => $username)); $response->setData($data); return $response; } else { return parent::sendEmailAction($request); } }
public function sendEmailAction(Request $request) { if ($this->userAlreadyLoggedIn()) { $router = $this->container->get('router'); return new RedirectResponse($router->generate('fos_user_profile_edit'), 302); } return parent::sendEmailAction($request); }