Esempio n. 1
0
 public function onKernelResponse(FilterResponseEvent $event)
 {
     $response = $event->getResponse();
     if (null !== $response && $response instanceof PluginResponseInterface) {
         //when a route from a plugin is hit
         if (!$event->getRequest()->attributes->get('_jarves_is_plugin')) {
             //we accept only plugin routes.
             return;
         }
         $pageResponse = $this->pageStack->getPageResponse();
         /** @var $content Content */
         $content = $event->getRequest()->attributes->get('_content');
         //this is later used in ContentTypes\TypePlugin, so it won't execute
         //the same plugin again.
         $pageResponse->setPluginResponse($content->getId(), $response);
         if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
             //when this was a master request, we need to render the actual content of the page,
             //so HttpKernel can return a valid ready rendered response
             //if a plugin route has been successfully requested
             //we need to handle also the Jarves editor
             if ($this->editMode->isEditMode()) {
                 $this->editMode->registerEditor();
             }
             $pageResponse->renderContent();
         }
         //maintain the actual PageResponse
         $event->setResponse($pageResponse);
     }
 }
Esempio n. 2
0
 public function onKernelResponse(FilterResponseEvent $event)
 {
     $controller = $event->getRequest()->attributes->get('_controller');
     if (empty($controller)) {
         return;
     }
     if (strpos($controller, '::') !== false) {
         $controller = explode('::', $controller, 2);
         $class = new \ReflectionClass($controller[0]);
         $method = $class->getMethod($controller[1]);
         $annotation = $this->reader->getMethodAnnotation($method, 'PSX\\PSXBundle\\Configuration\\Outgoing');
         $response = $event->getResponse();
         $writer = $this->getWriter($event->getRequest());
         if ($response instanceof DataResponse) {
             if ($annotation instanceof Outgoing) {
                 $file = $this->rootDir . '/' . $annotation->getFile();
                 $data = $this->assimilator->assimilate(JsonSchema::fromFile($file), $response->getData());
                 $response->headers->set('Content-Type', $writer->getContentType());
                 $response->setContent($writer->write($data));
             } else {
                 $data = $this->normalizeData($response->getData());
                 $response->headers->set('Content-Type', $writer->getContentType());
                 $response->setContent($writer->write($data));
             }
         } else {
             throw new RuntimeException('Can only transform responses of PSX\\PSXBundle\\DataResponse');
         }
     }
 }
Esempio n. 3
0
 /**
  * @param FilterResponseEvent $event
  */
 public function onResponseLoad(FilterResponseEvent $event)
 {
     if (!$event->getRequest()->attributes->has('AJAX_PROCESSING')) {
         return;
     }
     $event->setResponse(new Response($this->adapter->getResponse($event->getRequest()->attributes->get('ajax_commands'))));
 }
 /**
  * Redirects login attempts on already-logged-in session to the destination.
  */
 public function onRespond(FilterResponseEvent $event)
 {
     // Return early in most cases.
     if ($event->getRequest()->getMethod() !== 'POST') {
         return;
     }
     if (!$this->currentUser->isAuthenticated()) {
         return;
     }
     if (!$event->isMasterRequest()) {
         return;
     }
     if (!$event->getRequest()->query->has('destination')) {
         return;
     }
     if ($event->getResponse() instanceof RedirectResponse) {
         return;
     }
     // There has to be a better way to figure out if we landed on the 403/404 page.
     $page_403 = $this->configFactory->get('system.site')->get('page.403');
     $page_404 = $this->configFactory->get('system.site')->get('page.404');
     $path = $this->currentPath->getPath();
     $route = $this->currentRouteMatch->getRouteName();
     if ($route == 'system.403' || $page_403 && $path == $page_403 || $route == 'system.404' || $page_404 && $path == $page_404) {
         // RedirectResponseSubscriber will convert to absolute URL for us.
         $event->setResponse(new RedirectResponse($this->redirectDestination->get(), RedirectResponse::HTTP_SEE_OTHER));
     }
 }
 /**
  * Handles the onKernelResponse event.
  *
  * @param FilterResponseEvent $event A FilterResponseEvent instance
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     $master = HttpKernelInterface::MASTER_REQUEST === $event->getRequestType();
     if ($this->onlyMasterRequests && !$master) {
         return;
     }
     if ($this->onlyException && null === $this->exception) {
         return;
     }
     $exception = $this->exception;
     $this->exception = null;
     if (null !== $this->matcher && !$this->matcher->matches($event->getRequest())) {
         return;
     }
     if ($profile = $this->profiler->collect($event->getRequest(), $event->getResponse(), $exception)) {
         if ($master) {
             $this->profiler->saveProfile($profile);
             foreach ($this->children as $child) {
                 $child->setParent($profile);
                 $this->profiler->saveProfile($child);
             }
             $this->children = array();
         } else {
             $this->children[] = $profile;
         }
     }
 }
 /**
  * 输出debugBar,只有当页面有</body>标签时有效。
  *
  * @param FilterResponseEvent $event
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     $response = $event->getResponse();
     $request = $event->getRequest();
     if (!$event->isMasterRequest()) {
         return;
     }
     if ($request->isXmlHttpRequest()) {
         return;
     }
     if ($response->isRedirection() || $response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html') || 'html' !== $request->getRequestFormat()) {
         return;
     }
     $path = null;
     if ($this->app['debug_bar.auto_res']) {
         $scriptName = $event->getRequest()->server->get('SCRIPT_NAME');
         $path = $scriptName . $this->app['debug_bar.path'];
     } else {
         $path = $this->app['debug_bar.path'];
     }
     $render = $this->app['debug_bar']->getJavascriptRenderer($path);
     ob_start();
     echo $render->renderHead();
     echo $render->render();
     $debugContent = ob_get_contents();
     ob_end_clean();
     $content = $response->getContent();
     if (false === strpos($content, '</body>')) {
         $content .= $debugContent;
     } else {
         $content = str_replace("</body>", $debugContent . '</body>', $content);
     }
     $event->getResponse()->setContent($content);
 }
 /**
  * @param FilterResponseEvent $event
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     $allowedMethods = $this->loader->getAllowedMethods();
     if (isset($allowedMethods[$event->getRequest()->get('_route')])) {
         $event->getResponse()->headers->set('Allow', implode(', ', $allowedMethods[$event->getRequest()->get('_route')]));
     }
 }
Esempio n. 8
0
 /**
  * Parses content of response and set the replaced html as new content.
  *
  * @param FilterResponseEvent $event
  */
 public function replaceMarkup(FilterResponseEvent $event)
 {
     $format = $event->getRequest()->getRequestFormat(null);
     if (!array_key_exists($format, $this->markupParser)) {
         return;
     }
     $response = $event->getResponse();
     $response->setContent($this->markupParser[$format]->parse($response->getContent(), $event->getRequest()->getLocale()));
 }
Esempio n. 9
0
 /**
  * kernel.responseイベント
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     // kernel.responseイベント発生時に出力フォーマットを判定し、
     // csvであればContent-Dispositionヘッダを追加、かつ、レスポンスボディをSJIS-winに変換する
     if ($event->getRequest()->getRequestFormat() === 'csv') {
         $response = $event->getResponse();
         $response->setContent(mb_convert_encoding($response->getContent(), 'SJIS-win', mb_internal_encoding()));
         $response->headers->set('Content-Disposition', sprintf('attachment; filename=%s.csv', $event->getRequest()->get('_filename')));
     }
 }
Esempio n. 10
0
 /**
  * Check if snippets are allowed for this request.
  *
  * @param FilterResponseEvent $event
  */
 protected function isEnabled(FilterResponseEvent $event)
 {
     if (!$event->isMasterRequest()) {
         return false;
     }
     if (Zone::isFrontend($event->getRequest())) {
         return true;
     }
     return $event->getRequest()->attributes->get('allow_snippets', false);
 }
 /**
  * @param FilterResponseEvent $event
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     $request = $event->getRequest();
     if (!$request->attributes->get(FOSRestBundle::ZONE_ATTRIBUTE, true)) {
         return;
     }
     $allowedMethods = $this->loader->getAllowedMethods();
     if (isset($allowedMethods[$event->getRequest()->get('_route')])) {
         $event->getResponse()->headers->set('Allow', implode(', ', $allowedMethods[$event->getRequest()->get('_route')]));
     }
 }
 /**
  * Add resolved tags to X-Robots-Tag response header.
  *
  * @param FilterResponseEvent $event
  */
 public function addRobotTags(FilterResponseEvent $event)
 {
     if (!$event->isMasterRequest()) {
         return;
     }
     if ($this->cloak && !$this->requestChecker->isCrawler($event->getRequest())) {
         return;
     }
     if ($tags = $this->tagResolver->resolve($event->getRequest())) {
         $event->getResponse()->headers->set('X-Robots-Tag', implode(', ', $tags));
     }
 }
Esempio n. 13
0
    public function onKernelResponse(FilterResponseEvent $event)
    {
        $response = $event->getResponse();
        $request = $event->getRequest();
        // exclude render tags in the WDT and Profiler
        $controller = $request->attributes->get('_controller');
        if ($controller && 'WebProfilerBundle' === substr($controller, 0, 17)) {
            return;
        }
        // do not highlight master responses that are not HTML based
        $contentType = $response->headers->get('Content-Type');
        if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType() && $contentType && !preg_match('{^(text/html|application/xhtml+xml)\\b}', $contentType)) {
            return;
        }
        // skip non-cacheable responses
        if (!$response->isCacheable()) {
            return;
        }
        $response->setContent(sprintf('
                <div class="esi-debug">
                    <div class="esi-debug-details">
                       ESI: %s, Rendered: %s, Cache-Control: %s
                    </div>
                    %s
                </div>

                <style>
                    .esi-debug {
                        border: 1px solid red;
                    }

                    .esi-debug-details {
                        background: red;
                        position: absolute;
                        color: white;
                    }

                    .esi-debug:hover {
                        background: rgba(255, 0, 0, .25);
                        border-color #CC0000;
                        cursor: pointer;
                    }

                    .esi-debug:hover .esi-debug-details {
                        background: #CC0000;
                        z-index: 9999;
                    }
                </style>
            ', $event->getRequest()->getRequestUri(), date('Y-m-d H:i:s'), $response->headers->get('cache-control'), $response->getContent()));
    }
Esempio n. 14
0
 /**
  * This method is executed on kernel.response event
  *
  * @param FilterResponseEvent $event
  *
  * @see {http://symfony.com/doc/current/components/http_kernel/introduction.html#the-kernel-response-event}
  */
 public function onResponse(FilterResponseEvent $event)
 {
     $request = $event->getRequest();
     if ($request->attributes->get('response_source') === 'cache') {
         //Prevents re-caching response from cache
         $event->stopPropagation();
         return;
     }
     if (!$event->isMasterRequest()) {
         return;
         //Caching should only occur on master requests, see https://github.com/kiler129/SupercacheBundle/issues/10
     }
     $this->responseHandler->cacheResponse($event->getRequest(), $event->getResponse());
 }
 public function onKernelResponse(FilterResponseEvent $event)
 {
     if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) {
         // don't do anything if it's not the master request
         return;
     }
     if (false === strpos($event->getRequest()->getRequestUri(), 'login')) {
         if ($event->getRequest()->isXmlHttpRequest() && $event->getResponse()->getStatusCode() == "302") {
             $event->getResponse()->setStatusCode(401);
             $response = new \Symfony\Component\HttpFoundation\Response();
             $response->setStatusCode(401);
             $event->setResponse($response);
         }
     }
 }
Esempio n. 16
0
 public function doResponse(FilterResponseEvent $event)
 {
     $response = $event->getResponse();
     $url = $event->getRequest()->getPathInfo();
     $prefix = ConfigQuery::read("back_office_path");
     $defaultEnabled = intval(ConfigQuery::read("back_office_path_default_enabled", "1"));
     $contentType = $response->headers->get('Content-Type');
     // skip if the default thelia prefixe is enabled
     if ($defaultEnabled === 1) {
         return;
     }
     $isValid = strpos($url, '/' . BackOfficePath::DEFAULT_THELIA_PREFIX) === 0 && $prefix !== null && $prefix !== "";
     if ($isValid) {
         if ($response instanceof RedirectResponse) {
             $targetUrl = $response->getTargetUrl();
             if (strpos($targetUrl, '/' . BackOfficePath::DEFAULT_THELIA_PREFIX) !== false) {
                 $newUrl = $this->replaceUrl($targetUrl, BackOfficePath::DEFAULT_THELIA_PREFIX, $prefix);
                 $response->setTargetUrl($newUrl);
             }
         } else {
             $content = $this->replaceUrl($response->getContent(), BackOfficePath::DEFAULT_THELIA_PREFIX, $prefix);
             $response->setContent($content);
         }
     }
 }
 public function onKernelResponse(FilterResponseEvent $event)
 {
     $response = $event->getResponse();
     $request = $event->getRequest();
     if ($response->headers->has('X-Debug-Token') && null !== $this->urlGenerator) {
         try {
             $response->headers->set('X-Debug-Token-Link', $this->urlGenerator->generate('_profiler', array('token' => $response->headers->get('X-Debug-Token')), UrlGeneratorInterface::ABSOLUTE_URL));
         } catch (\Exception $e) {
             $response->headers->set('X-Debug-Error', get_class($e) . ': ' . $e->getMessage());
         }
     }
     if (!$event->isMasterRequest()) {
         return;
     }
     // do not capture redirects or modify XML HTTP Requests
     if ($request->isXmlHttpRequest()) {
         return;
     }
     if ($response->headers->has('X-Debug-Token') && $response->isRedirect() && $this->interceptRedirects) {
         $session = $request->getSession();
         if (null !== $session && $session->isStarted() && $session->getFlashBag() instanceof AutoExpireFlashBag) {
             // keep current flashes for one more request if using AutoExpireFlashBag
             $session->getFlashBag()->setAll($session->getFlashBag()->peekAll());
         }
         $response->setContent($this->twig->render('@WebProfiler/Profiler/toolbar_redirect.html.twig', array('location' => $response->headers->get('Location'))));
         $response->setStatusCode(200);
         $response->headers->remove('Location');
     }
     if (self::DISABLED === $this->mode || !$response->headers->has('X-Debug-Token') || $response->isRedirection() || $response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html') || 'html' !== $request->getRequestFormat()) {
         return;
     }
     $this->injectToolbar($response, $request);
 }
Esempio n. 18
0
 public function onKernelResponse(FilterResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $response = $event->getResponse();
     $request = $event->getRequest();
     // do not capture redirects or modify XML HTTP Requests
     if ($request->isXmlHttpRequest()) {
         return;
     }
     if ($response->headers->has('X-Debug-Token') && $response->isRedirect() && $this->interceptRedirects) {
         $session = $request->getSession();
         if ($session && $session->getFlashBag() instanceof AutoExpireFlashBag) {
             // keep current flashes for one more request if using AutoExpireFlashBag
             $session->getFlashBag()->setAll($session->getFlashBag()->peekAll());
         }
         $response->setContent($this->templating->render('WebProfilerBundle:Profiler:toolbar_redirect.html.twig', array('location' => $response->headers->get('Location'))));
         $response->setStatusCode(200);
         $response->headers->remove('Location');
     }
     if (self::DISABLED === $this->mode || !$response->headers->has('X-Debug-Token') || $response->isRedirection() || $response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html') || 'html' !== $request->getRequestFormat()) {
         return;
     }
     $this->injectToolbar($response);
 }
Esempio n. 19
0
    public function onCoreResponse(FilterResponseEvent $event)
    {
        if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
            return;
        }

        $response = $event->getResponse();
        $request = $event->getRequest();

        // do not capture redirects or modify XML HTTP Requests
        if ($request->isXmlHttpRequest()) {
            return;
        }

        if ($response->headers->has('X-Debug-Token') && $response->isRedirect() && $this->interceptRedirects) {
            if (null !== $session = $request->getSession()) {
                // keep current flashes for one more request
                $session->setFlashes($session->getFlashes());
            }

            $response->setContent($this->templating->render('WebProfilerBundle:Profiler:toolbar_redirect.html.twig', array('location' => $response->headers->get('Location'))));
            $response->setStatusCode(200);
            $response->headers->remove('Location');
        }

        if (!$response->headers->has('X-Debug-Token')
            || '3' === substr($response->getStatusCode(), 0, 1)
            || ($response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html'))
            || 'html' !== $request->getRequestFormat()
        ) {
            return;
        }

        $this->injectToolbar($response);
    }
 public function addLocaleCookie(FilterResponseEvent $event)
 {
     $cookies = $event->getRequest()->cookies;
     if (isset($this->locale) && (false === $cookies->has('locale') || $cookies->get('locale') !== $this->locale)) {
         $event->getResponse()->headers->setCookie(new Cookie('locale', $this->locale, 0, '/', null, false, false));
     }
 }
 public function onRenderAdminProductCategoryEditBefore(FilterResponseEvent $event)
 {
     $app = $this->app;
     $request = $event->getRequest();
     $response = $event->getResponse();
     $id = $request->attributes->get('id');
     $CategoryContent = null;
     if ($id) {
         $CategoryContent = $app['category_content.repository.category_content']->find($id);
     }
     if (is_null($CategoryContent)) {
         $CategoryContent = new \Plugin\CategoryContent\Entity\CategoryContent();
     }
     // DomCrawlerにHTMLを食わせる
     $html = $response->getContent();
     $crawler = new Crawler($html);
     $form = $app['form.factory']->createBuilder('admin_category')->getForm();
     $form['content']->setData($CategoryContent->getContent());
     $form->handleRequest($request);
     $twig = $app->renderView('CategoryContent/Resource/template/Admin/category.twig', array('form' => $form->createView()));
     $oldCrawler = $crawler->filter('form')->first();
     // DomCrawlerからHTMLを吐き出す
     $html = $crawler->html();
     $oldHtml = '';
     $newHtml = '';
     if (count($oldCrawler) > 0) {
         $oldHtml = $oldCrawler->html();
         $newHtml = $oldHtml . $twig;
     }
     $html = str_replace($oldHtml, $newHtml, $html);
     $response->setContent($html);
     $event->setResponse($response);
 }
Esempio n. 22
0
 /**
  * Handles the onKernelResponse event.
  *
  * @param FilterResponseEvent $event A FilterResponseEvent instance
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     $master = $event->isMasterRequest();
     if ($this->onlyMasterRequests && !$master) {
         return;
     }
     if ($this->onlyException && null === $this->exception) {
         return;
     }
     $request = $event->getRequest();
     $exception = $this->exception;
     $this->exception = null;
     if (null !== $this->matcher && !$this->matcher->matches($request)) {
         return;
     }
     if (!($profile = $this->profiler->collect($request, $event->getResponse(), $exception))) {
         return;
     }
     $this->profiles[$request] = $profile;
     if (null !== $this->requestStack) {
         $this->parents[$request] = $this->requestStack->getParentRequest();
     } elseif (!$master) {
         // to be removed when requestStack is required
         array_pop($this->requests);
         $this->parents[$request] = end($this->requests);
     }
 }
Esempio n. 23
0
 /**
  * Filters the Response.
  *
  * @param FilterResponseEvent $event A FilterResponseEvent instance
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     $request = $event->getRequest();
     $response = $event->getResponse();
     if ('HEAD' === $request->getMethod()) {
         // cf. RFC2616 14.13
         $length = $response->headers->get('Content-Length');
         $response->setContent('');
         if ($length) {
             $response->headers->set('Content-Length', $length);
         }
     }
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     if (null === $response->getCharset()) {
         $response->setCharset($this->charset);
     }
     if ($response->headers->has('Content-Type')) {
         return;
     }
     $format = $request->getRequestFormat();
     if (null !== $format && ($mimeType = $request->getMimeType($format))) {
         $response->headers->set('Content-Type', $mimeType);
     }
 }
Esempio n. 24
0
 /**
  * Adds the headers to the response once it's created
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     if (!$event->isMasterRequest()) {
         return;
     }
     if (!preg_match('{\\bFirePHP/\\d+\\.\\d+\\b}', $event->getRequest()->headers->get('User-Agent')) && !$event->getRequest()->headers->has('X-FirePHP-Version')) {
         $this->sendHeaders = false;
         $this->headers = array();
         return;
     }
     $this->response = $event->getResponse();
     foreach ($this->headers as $header => $content) {
         $this->response->headers->set($header, $content);
     }
     $this->headers = array();
 }
    public function onKernelResponse(FilterResponseEvent $event)
    {
        if ($this->url || !$event->isMasterRequest() || !\sfContext::hasInstance()) {
            return;
        }
        $response_headers = $event->getResponse()->headers;
        if ($response_headers->has('x-debug-token-link') && strpos(\sfContext::getInstance()->getResponse()->getContentType(), 'javascript') === false && !$event->getRequest()->isXmlHttpRequest()) {
            $this->url = $response_headers->get('x-debug-token-link');
            $link = json_encode($response_headers->get('x-debug-token-link'));
            echo <<<JAVASCRIPT
<script>
(function() {
  var bar_node = document.getElementById('sfWebDebugDetails'), link_node, li_node;
  if(bar_node) { // We have a debug bar
    link_node = document.createElement('a');
    link_node.href = {$link};
    link_node.appendChild(document.createTextNode('Symfony 2'));
    li_node = document.createElement('li');
    li_node.appendChild(link_node);
    bar_node.insertBefore(li_node,bar_node.firstChild);
  }
}())
</script>
JAVASCRIPT;
        }
    }
 public function onKernelResponse(FilterResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $response = $event->getResponse();
     $request = $event->getRequest();
     // do not capture redirects or modify XML HTTP Requests
     if ($request->isXmlHttpRequest()) {
         return;
     }
     // do not capture admin cms urls
     if (preg_match('/.*\\/admin\\/.*/', $request->getRequestUri())) {
         return;
     }
     try {
         $isGranted = $this->authorizationChecker->isGranted('ROLE_ADMIN');
     } catch (AuthenticationCredentialsNotFoundException $e) {
         $isGranted = false;
     }
     if (self::DISABLED === $this->mode || $response->isRedirection() || $response->headers->has('Content-Type') && false === strpos($response->headers->get('Content-Type'), 'html') || 'html' !== $request->getRequestFormat()) {
         return;
     }
     $this->injectToolbar($response, $request);
 }
Esempio n. 27
0
 public function onKernelResponse(FilterResponseEvent $e)
 {
     if (!$this->isRestRoute($e->getRequest())) {
         return;
     }
     $e->getDispatcher()->dispatch('sdispatcher.rest_response', $e);
 }
Esempio n. 28
0
 /**
  * Modifies the response to apply HTTP expiration header fields.
  *
  * @param FilterResponseEvent $event The notified event
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     if (!($configuration = $event->getRequest()->attributes->get('_cache'))) {
         return;
     }
     $response = $event->getResponse();
     if (!$response->isCacheable()) {
         return;
     }
     if (null !== $configuration->getSMaxAge()) {
         $response->setSharedMaxAge($configuration->getSMaxAge());
     }
     if (null !== $configuration->getMaxAge()) {
         $response->setMaxAge($configuration->getMaxAge());
     }
     if (null !== $configuration->getExpires()) {
         $date = \DateTime::createFromFormat('U', strtotime($configuration->getExpires()), new \DateTimeZone('UTC'));
         $response->setExpires($date);
     }
     if (null !== $configuration->getVary()) {
         $response->setVary($configuration->getVary());
     }
     if ($configuration->isPublic()) {
         $response->setPublic();
     }
     $event->setResponse($response);
 }
Esempio n. 29
0
    public function onQuickUploadResponse(FilterResponseEvent $event)
    {
        $request = $event->getRequest();
        if ($request->get('responseType') === 'json') {
            return;
        }
        $response = $event->getResponse();
        $funcNum = $request->get('CKEditorFuncNum');
        $funcNum = preg_replace('/[^0-9]/', '', $funcNum);
        if ($response instanceof JsonResponse) {
            $responseData = $response->getData();
            $fileUrl = isset($responseData['url']) ? $responseData['url'] : '';
            $errorMessage = isset($responseData['error']['message']) ? $responseData['error']['message'] : '';
            ob_start();
            ?>
<script type="text/javascript">
    window.parent.CKEDITOR.tools.callFunction(<?php 
            echo json_encode($funcNum);
            ?>
, <?php 
            echo json_encode($fileUrl);
            ?>
, <?php 
            echo json_encode($errorMessage);
            ?>
);
</script>
            <?php 
            $event->setResponse(Response::create(ob_get_clean()));
        }
    }
 /**
  * Renders the ajax commands right before preparing the result.
  *
  * @param \Symfony\Component\HttpKernel\Event\FilterResponseEvent $event
  *   The response event, which contains the possible AjaxResponse object.
  */
 public function onResponse(FilterResponseEvent $event)
 {
     $response = $event->getResponse();
     if ($response instanceof AjaxResponse) {
         $response->prepareResponse($event->getRequest());
     }
 }