示例#1
0
 /**
  * Creates the Response from the view.
  *
  * @param View   $view
  * @param string $location
  * @param string $format
  *
  * @return Response
  */
 public function createRedirectResponse(View $view, $location, $format)
 {
     $content = null;
     if (($view->getStatusCode() == Response::HTTP_CREATED || $view->getStatusCode() == Response::HTTP_ACCEPTED) && $view->getData() != null) {
         $response = $this->initResponse($view, $format);
     } else {
         $response = $view->getResponse();
         if ('html' === $format && isset($this->forceRedirects[$format])) {
             $redirect = new RedirectResponse($location);
             $content = $redirect->getContent();
             $response->setContent($content);
         }
     }
     $code = isset($this->forceRedirects[$format]) ? $this->forceRedirects[$format] : $this->getStatusCode($view, $content);
     $response->setStatusCode($code);
     $response->headers->set('Location', $location);
     return $response;
 }
 public function testBroadcast(MultimediaObject $multimediaObject, Request $request)
 {
     if (($broadcast = $multimediaObject->getBroadcast()) && Broadcast::BROADCAST_TYPE_PUB !== $broadcast->getBroadcastTypeId() && (!($broadcastName = $request->headers->get('PHP_AUTH_USER', false)) || $request->headers->get('PHP_AUTH_PW') !== $broadcast->getPasswd() || $broadcastName !== $broadcast->getName())) {
         $seriesUrl = $this->generateUrl('pumukit_webtv_series_index', array('id' => $multimediaObject->getSeries()->getId()), true);
         $redReq = new RedirectResponse($seriesUrl, 302);
         return new Response($redReq->getContent(), 401, array('WWW-Authenticate' => 'Basic realm="Resource not public."'));
     }
     if ($broadcast && Broadcast::BROADCAST_TYPE_PRI === $broadcast->getBroadcastTypeId()) {
         return new Response($this->render("PumukitWebTVBundle:Index:403forbidden.html.twig", array()), 403);
     }
     return true;
 }
 /**
  * Create the Response from the view
  *
  * @param View   $view
  * @param string $location
  * @param string $format
  *
  * @return Response
  */
 public function createRedirectResponse(View $view, $location, $format)
 {
     $content = null;
     $response = $view->getResponse();
     if ('html' === $format && isset($this->forceRedirects[$format])) {
         $redirect = new RedirectResponse($location);
         $content = $redirect->getContent();
         $response->setContent($content);
     }
     $code = isset($this->forceRedirects[$format]) ? $this->forceRedirects[$format] : $this->getStatusCode($view, $content);
     $response->setStatusCode($code);
     $response->headers->set('Location', $location);
     return $response;
 }
示例#4
0
 public function testGenerateMetaRedirect()
 {
     $response = new RedirectResponse('foo.bar');
     $this->assertEquals(1, preg_match('#<meta http-equiv="refresh" content="\\d+;url=foo\\.bar" />#', preg_replace(array('/\\s+/', '/\'/'), array(' ', '"'), $response->getContent())));
 }
 /**
  * Request reset user password: submit form and send email
  */
 public function sendEmailAction(Request $request)
 {
     $username = $request->get('username');
     $template = $request->get('template');
     $routereset = $request->get('routereset');
     $type = $request->get('type');
     if (empty($template)) {
         $template = str_replace('::', ':', $this->container->getParameter('sfynx.auth.theme.login')) . 'Resetting:request.html.twig';
     }
     $user = $this->container->get('doctrine')->getManager()->getRepository('SfynxAuthBundle:User')->findOneBy(array('username' => $username));
     if ($request->isXmlHttpRequest()) {
         $response = new JsonResponse();
         if (null === $user) {
             return $response->setData(json_encode(array('text' => 'Identifiant inconnu', 'error' => true, 'type' => 'unknown')));
         } else {
             if ($user->isPasswordRequestNonExpired($this->container->getParameter('fos_user.resetting.token_ttl')) && $type == 'send') {
                 return $response->setData(json_encode(array('text' => 'Vous devez au préalable activer votre compte en cliquant sur le mail de Confirmation d\'inscription reçu', 'error' => true, 'type' => '24h')));
             } else {
                 $tokenGenerator = $this->container->get('fos_user.util.token_generator');
                 $user->setConfirmationToken($tokenGenerator->generateToken());
                 $em = $this->container->get('doctrine')->getManager();
                 $em->persist($user);
                 $em->flush();
                 $this->container->get('session')->set(PiMailerManager::SESSION_EMAIL, $this->container->get('sfynx.auth.mailer')->getObfuscatedEmail($user));
                 $this->container->get('sfynx.auth.mailer')->sendResettingEmailMessage($user, $routereset);
                 $user->setPasswordRequestedAt(new \DateTime());
                 $this->container->get('fos_user.user_manager')->updateUser($user);
                 return $response->setData(json_encode(array('text' => 'Un email vous a été envoyé pour créer un nouveau mot de passe sur le site', 'error' => false)));
             }
         }
     } else {
         if (null === $user) {
             return $this->container->get('templating')->renderResponse($template, array('invalid_username' => $username));
         }
         if ($user->isPasswordRequestNonExpired($this->container->getParameter('fos_user.resetting.token_ttl'))) {
             return $this->container->get('templating')->renderResponse(str_replace('::', ':', $this->container->getParameter('sfynx.auth.theme.login')) . 'Resetting:passwordAlreadyRequested.html.twig');
         }
         $tokenGenerator = $this->container->get('fos_user.util.token_generator');
         $user->setConfirmationToken($tokenGenerator->generateToken());
         $em = $this->container->get('doctrine')->getManager();
         $em->persist($user);
         $em->flush();
         //
         $this->container->get('session')->set(PiMailerManager::SESSION_EMAIL, $this->container->get('sfynx.auth.mailer')->getObfuscatedEmail($user));
         $this->container->get('sfynx.auth.mailer')->sendResettingEmailMessage($user, $routereset);
         $user->setPasswordRequestedAt(new \DateTime());
         $this->container->get('fos_user.user_manager')->updateUser($user);
         try {
             return $this->container->get('templating')->renderResponse($template, array('success' => true));
         } catch (\Exception $e) {
             $response = new RedirectResponse($this->container->get('router')->generate('fos_user_resetting_check_email'));
         }
         return $response->getContent();
     }
 }