/**
  * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     if ($event->getRequestType() != HttpKernelInterface::MASTER_REQUEST) {
         return;
     }
     // @todo make endpoint(s) customizable
     if ($event->getRequest()->getMethod() !== 'POST') {
         return;
     }
     if ($event->getRequest()->getPathInfo() != '/xmlrpc' && $event->getRequest()->getPathInfo() != '/xmlrpc.php') {
         return;
     }
     try {
         $request = $this->requestGenerator->generateFromRequest($event->getRequest());
         if (isset($this->logger)) {
             $this->logger->debug((string) $request);
         }
     } catch (UnexpectedValueException $e) {
         $event->setResponse(new Response("Invalid request XML\n" . $e->getMessage(), 400));
         return;
     }
     // @todo refactor to dynamically set follow-up events instead of testing (cors bundle like)
     $request->attributes->set('IsXmlRpcRequest', true);
     $requestContext = new RequestContext();
     $requestContext->fromRequest($request);
     $originalContext = $this->router->getContext();
     $this->router->setContext($requestContext);
     $response = $this->httpKernel->handle($request);
     $event->setResponse($response);
     $this->router->setContext($originalContext);
     if ($response instanceof Response) {
         $event->setResponse($response);
     }
 }
 /**
  * @param \Twig_Environment $environment
  * @param $node
  * @param array $options
  * @return string
  */
 public function renderMenuItemTemplate(\Twig_Environment $environment, $node, $options = array())
 {
     $template = isset($options['template']) ? $options['template'] : false;
     if ($template === false) {
         $template = 'KunstmaanMenuBundle::menu-item.html.twig';
     }
     $active = false;
     if ($node['type'] == MenuItem::TYPE_PAGE_LINK) {
         $url = $this->router->generate('_slug', array('url' => $node['nodeTranslation']['url']));
         if ($this->router->getContext()->getPathInfo() == $url) {
             $active = true;
         }
     } else {
         $url = $node['url'];
     }
     if ($node['type'] == MenuItem::TYPE_PAGE_LINK) {
         if ($node['title']) {
             $title = $node['title'];
         } else {
             $title = $node['nodeTranslation']['title'];
         }
     } else {
         $title = $node['title'];
     }
     return $environment->render($template, array('menuItem' => $node, 'url' => $url, 'options' => $options, 'title' => $title, 'active' => $active));
 }
Ejemplo n.º 3
0
 private function setHost($host)
 {
     if (1 !== preg_match('#^(https?)://([\\w\\.-]+)#', $host, $matches)) {
         throw new \InvalidArgumentException(sprintf('The host "%s" is invalid.', $host));
     }
     $context = $this->router->getContext();
     $context->setScheme($matches[1]);
     $context->setHost($matches[2]);
 }
Ejemplo n.º 4
0
 public function generate($name, $parameters = [], $referenceType = self::ABSOLUTE_PATH)
 {
     $baseContext = $this->router->getContext();
     try {
         $this->router->setContext(new RequestContext('', 'GET', $baseContext->getHost(), $baseContext->getScheme(), $baseContext->getHttpPort(), $baseContext->getHttpsPort()));
         return $this->router->generate($name, $parameters, $referenceType);
     } finally {
         $this->router->setContext($baseContext);
     }
 }
Ejemplo n.º 5
0
 /**
  * @param $key
  *
  * @return array An array of parameters
  */
 public function getPathInfoFromMetaTagKey($key)
 {
     $info = $this->keyGenerator->generatePathInfoFromMetaTagKey($key);
     $this->router->getContext()->setMethod('GET');
     if ($this->keyGenerator->isAddQueryString()) {
         $info = substr($info, 0, strpos($info, '?'));
         $match = $this->router->match($info);
         return $match;
     } else {
         return $this->router->match($info);
     }
 }
Ejemplo n.º 6
0
 /**
  * @param Request $request
  * @param         $id
  * @param         $embed
  *
  * @return ResourceInterface
  */
 public function initFilterEmbed(Request $request, $id, $embed)
 {
     $embedShortname = ucwords(Inflector::singularize($embed));
     /** @var $resourceEmbed ResourceInterface */
     $resourceEmbed = $this->resourceResolver->getResourceForShortName($embedShortname, $this->router->getContext()->getApiVersion());
     $filter = new EmbedFilter($this->managerRegistry, $this->propertyAccessor);
     $params = !$request->request->has('embedParams') ? ['embed' => $embed, 'id' => $id] : $request->request->get('embedParams');
     $filter->setParameters($params);
     $filter->setRouteName($request->get('_route'));
     $resourceEmbed->addFilter($filter);
     return $resourceEmbed;
 }
Ejemplo n.º 7
0
 /**
  * {@inheritdoc}
  */
 public function onRequest(GetResponseEvent $event)
 {
     $context = $this->router->getContext();
     $portalInformation = $this->requestAnalyzer->getPortalInformation();
     if ($portalInformation) {
         if (!$context->hasParameter('prefix')) {
             $context->setParameter('prefix', $portalInformation->getPrefix());
         }
         if (!$context->hasParameter('host')) {
             $context->setParameter('host', $portalInformation->getHost());
         }
     }
 }
Ejemplo n.º 8
0
 public function match($pathInfo)
 {
     $baseContext = $this->router->getContext();
     $pathInfo = str_replace($baseContext->getBaseUrl(), '', $pathInfo);
     $request = Request::create($pathInfo);
     $context = (new RequestContext())->fromRequest($request);
     $context->setPathInfo($pathInfo);
     try {
         $this->router->setContext($context);
         return $this->router->match($request->getPathInfo());
     } finally {
         $this->router->setContext($baseContext);
     }
 }
Ejemplo n.º 9
0
 public function generate($name, $parameters = [], $referenceType = self::ABSOLUTE_PATH)
 {
     if (is_object($name)) {
         if ($name instanceof ResourceInterface) {
             $embedRouteName = $this->getEmbedRouteName($name, $parameters);
             $name = $embedRouteName === false ? $this->getItemRouteName($name, 'collection') : $embedRouteName;
         } else {
             $parameters = $this->getParamsByResource($name);
         }
     }
     if (isset($parameters['id']) && $parameters['id'] === 0) {
         return null;
     }
     $baseContext = $this->router->getContext();
     try {
         $this->router->setContext(new RequestContext('', 'GET', $baseContext->getHost(), $baseContext->getScheme(), $baseContext->getHttpPort(), $baseContext->getHttpsPort()));
         try {
             return $this->router->generate($name, $parameters, $referenceType);
         } catch (\Exception $e) {
             throw new \Exception($e->getMessage(), $e->getCode());
         }
     } finally {
         $this->router->setContext($baseContext);
     }
 }
Ejemplo n.º 10
0
 /**
  * Checks if it's needed to redirect to setup wizard
  *
  * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
  */
 public function onKernelRequestSetup(GetResponseEvent $event)
 {
     if ($event->getRequestType() == HttpKernelInterface::MASTER_REQUEST) {
         if ($this->defaultSiteAccess !== 'setup') {
             return;
         }
         $request = $event->getRequest();
         $requestContext = $this->router->getContext();
         $requestContext->fromRequest($request);
         $this->router->setContext($requestContext);
         $setupURI = $this->router->generate('ezpublishSetup');
         if ($requestContext->getBaseUrl() . $request->getPathInfo() === $setupURI) {
             return;
         }
         $event->setResponse(new RedirectResponse($setupURI));
     }
 }
Ejemplo n.º 11
0
 /**
  * @param string|array $routeDefinition
  * @return string
  */
 private function generateUrl($routeDefinition)
 {
     $route = is_array($routeDefinition) ? $routeDefinition['route'] : $routeDefinition;
     $parameters = is_array($routeDefinition) ? $routeDefinition['parameters'] : [];
     $context = $this->router->getContext();
     $context->fromRequest($this->requestStack->getMasterRequest());
     $url = $this->router->generate($route, $parameters, RouterInterface::ABSOLUTE_URL);
     $context->fromRequest($this->requestStack->getCurrentRequest());
     return $url;
 }
Ejemplo n.º 12
0
 public function onKernelRequest(GetResponseEvent $event)
 {
     $context = $this->router->getContext();
     preg_match('/^\\/convention\\/([a-z]\\w+)/', $context->getPathInfo(), $matches);
     $code = isset($matches[1]) ? $matches[1] : $this->baseCode;
     if (!$context->hasParameter('code')) {
         $context->setParameter('code', $code);
     }
     if ($this->baseCode == $code) {
         $site = new Convention();
         $site->setDomain('ritsi');
         $this->siteManager->setCurrentSite($site);
         return;
     }
     $site = $this->em->getRepository('AppBundle:Convention')->findOneBy(array('domain' => $code));
     if (!$site) {
         throw new NotFoundHttpException(sprintf('No site for code "%s"', $code));
     }
     $this->siteManager->setCurrentSite($site);
 }
 /**
  * @param array $options
  *
  * @return string
  */
 protected function getBaseUrl(array $options)
 {
     if (!empty($options['index']['base_url'])) {
         if ('/' == substr($options['index']['base_url'], -1)) {
             return $options['index']['base_url'];
         }
         return sprintf('%s/', $options['index']['base_url']);
     }
     $context = $this->router->getContext();
     return sprintf('%s://%s%s', $context->getScheme(), $context->getHost(), $context->getPathInfo());
 }
 /**
  * @param string $entityClass
  *
  * @return string|null
  */
 protected function getEntityResourceUri($entityClass)
 {
     $uri = null;
     if ($this->entityAliasResolver->hasAlias($entityClass)) {
         try {
             $uri = $this->router->generate('oro_rest_api_cget', ['entity' => $this->entityAliasResolver->getPluralAlias($entityClass)]);
         } catch (RoutingException $e) {
             // ignore any exceptions
         }
     }
     if ($uri) {
         $baseUrl = $this->router->getContext()->getBaseUrl();
         if ($baseUrl) {
             $uri = substr($uri, strlen($baseUrl));
         }
     }
     return $uri;
 }
Ejemplo n.º 15
0
 /**
  * Create text form.
  *
  * @param TextNodeInterface $textNode
  *
  * @return FormInterface
  */
 public function create(TextNodeInterface $textNode)
 {
     return $this->formFactory->create('silvestra_text_node', $textNode, array('method' => 'POST', 'action' => $this->router->getContext()->getPathInfo()));
 }
Ejemplo n.º 16
0
 /**
  * Get scheme and host.
  *
  * @return string
  */
 public function getSchemeAndHost()
 {
     return $this->router->getContext()->getScheme() . '://' . $this->router->getContext()->getHost();
 }
Ejemplo n.º 17
0
 /**
  * @param string $method
  */
 private function setRequestMethod($method)
 {
     if ($this->router->getContext()) {
         $this->router->getContext()->setMethod($method);
     }
 }
Ejemplo n.º 18
0
 /**
  * Create node route.
  *
  * @param NodeInterface $node
  *
  * @return FormInterface
  */
 public function create(NodeInterface $node)
 {
     return $this->formFactory->create('tadcka_sitemap_node_route', $node, array('action' => $this->router->getContext()->getPathInfo(), 'allowed_link_attributes' => $this->allowedLinkAttributes));
 }
Ejemplo n.º 19
0
 /**
  * Create site form.
  *
  * @param SiteInterface $site
  *
  * @return FormInterface
  */
 public function create(SiteInterface $site)
 {
     return $this->formFactory->create('silvestra_site', $site, array('action' => $this->router->getContext()->getPathInfo()));
 }
 /**
  * Returns the Base URL.
  *
  * @return string
  */
 public function getBaseUrl()
 {
     return $this->router->getContext()->getBaseUrl() ?: '';
 }
Ejemplo n.º 21
0
 /**
  * Create banner form.
  *
  * @param BannerInterface $banner
  *
  * @return FormInterface
  */
 public function create(BannerInterface $banner)
 {
     return $this->formFactory->create('silvestra_banner', $banner, array('action' => $this->router->getContext()->getPathInfo()));
 }
Ejemplo n.º 22
0
 /**
  * Create node route.
  *
  * @param NodeInterface $node
  *
  * @return FormInterface
  */
 public function create(NodeInterface $node)
 {
     return $this->formFactory->create('tadcka_sitemap_node_route', $node, array('action' => $this->router->getContext()->getPathInfo()));
 }
Ejemplo n.º 23
0
 /**
  * @return String - returns Logout URL
  */
 public function getLogoutLink()
 {
     return 'http://' . $this->router->getContext()->getHost() . '/admin/logout';
 }
Ejemplo n.º 24
0
 /**
  * {@inheritdoc}
  */
 public function getContext()
 {
     return $this->router->getContext();
 }
Ejemplo n.º 25
0
 public function getRouterRequestContext() : RequestContext
 {
     return $this->router->getContext();
 }
Ejemplo n.º 26
0
 /**
  * Create node form.
  *
  * @param NodeInterface $node
  *
  * @return FormInterface
  */
 public function create(NodeInterface $node)
 {
     return $this->formFactory->create(new NodeType(), $node, array('action' => $this->router->getContext()->getPathInfo(), 'data_class' => $this->nodeClass, 'translation_class' => $this->translationClass, 'node_types' => $this->getNodeTypes($node), 'is_root' => null === $node->getParent()));
 }
 /**
  * Check whether server is serving HTTPS over a non-standard port
  *
  * @return bool
  */
 private function usesNonStandardHttpsPort()
 {
     return 'https' === $this->getScheme() && '443' != $this->router->getContext()->getHttpsPort();
 }
Ejemplo n.º 28
0
 /**
  * Returns current router context
  *
  * @return \Symfony\Component\Routing\RequestContext
  */
 private function getRouterContext()
 {
     return $this->router->getContext();
 }