Exemplo n.º 1
0
 /**
  * If users flag isFirstLogin is true redirect to change password page.
  *
  * @param \Symfony\Component\HttpKernel\Event\FilterResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     // Don't do anything if it's not the master request or another firewall than "secured"
     $isSecuredArea = (bool) preg_match('/^\\/secured/', $event->getRequest()->getPathInfo());
     if (HttpKernel::MASTER_REQUEST != $event->getRequestType() || !$isSecuredArea) {
         return;
     }
     $token = $this->tokenStorage->getToken();
     $user = $token->getUser();
     // check if employee object exists
     if (is_object($user) && null !== $user->getEmployee()) {
         $today = new \DateTime('today');
         $isInactive = (bool) (null !== $user->getEmployee()->getLeavingDate() && $user->getEmployee()->getLeavingDate() < $today);
         // Update user object if leaving date is passed and user is still active
         if ($token->getUser()->getIsActive() && $isInactive) {
             $user->setIsActive(false);
             $this->entityManager->persist($user);
             $this->entityManager->flush();
             if (null !== $this->logger) {
                 $this->logger->notice('[InactiveUserListener] Employee passed leaving date, user will be disabled.', array('username' => $user->getUsername()));
             }
             // TODO: Return a proper error message on the login page
             $logoutUrl = $this->router->generate('OpitOpitHrmUserBundle_logout', array(), true);
             $event->setResponse(new RedirectResponse($logoutUrl));
         }
     }
 }
 /**
  * Action performed on kernel response event.
  *
  * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event The response event.
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST) {
         return;
     }
     $event->getRequest()->server->set('REMOTE_ADDR', $this->fakeIp);
 }
 public function onKernelRequest(GetResponseEvent $event)
 {
     if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) {
         // don't do anything if it's not the master request
         return;
     }
     $token = $this->context->getToken();
     if (is_null($token)) {
         return;
     }
     $_route = $event->getRequest()->attributes->get('_route');
     if ($this->context->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
         if (!$token->getUser() instanceof PersonInterface) {
             // We don't have a PersonInterface... Nothing to do here.
             return;
         }
         if ($_route == 'lc_home' || $_route == 'fos_user_security_login') {
             $key = '_security.main.target_path';
             #where "main" is your firewall name
             //check if the referer session key has been set
             if ($this->session->has($key)) {
                 //set the url based on the link they were trying to access before being authenticated
                 $url = $this->session->get($key);
                 //remove the session key
                 $this->session->remove($key);
             } else {
                 $url = $this->router->generate('lc_dashboard');
             }
             $event->setResponse(new RedirectResponse($url));
         } else {
             $this->checkUnconfirmedEmail();
         }
     }
 }
 /**
  * @param GetResponseEvent $event
  */
 public function onRequest(GetResponseEvent $event)
 {
     if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) {
         return;
     }
     $this->requestLogger->logRequest($event->getRequest());
 }
Exemplo n.º 5
0
 /**
  * Determines and sets the Request format.
  *
  * @param GetResponseEvent $event The event
  *
  * @throws NotAcceptableHttpException
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     $request = $event->getRequest();
     if (!$request->attributes->get(FOSRestBundle::ZONE_ATTRIBUTE, true)) {
         return;
     }
     try {
         $format = $request->getRequestFormat(null);
         if (null === $format) {
             $accept = $this->formatNegotiator->getBest('');
             if (null !== $accept && 0.0 < $accept->getQuality()) {
                 $format = $request->getFormat($accept->getType());
                 if (null !== $format) {
                     $request->attributes->set('media_type', $accept->getValue());
                 }
             }
         }
         if (null === $format) {
             if ($event->getRequestType() === HttpKernelInterface::MASTER_REQUEST) {
                 throw new NotAcceptableHttpException('No matching accepted Response format could be determined');
             }
             return;
         }
         $request->setRequestFormat($format);
     } catch (StopFormatListenerException $e) {
         // nothing to do
     }
 }
Exemplo n.º 6
0
 /**
  * @param GetResponseEvent $event
  */
 public function fetchRequest(GetResponseEvent $event)
 {
     if (HttpKernel::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $this->request = $event->getRequest();
 }
Exemplo n.º 7
0
 public function onKernelRequest(GetResponseEvent $event)
 {
     $request = $event->getRequest();
     if ($event->getRequestType() == HttpKernelInterface::MASTER_REQUEST && $request->getMethod() == 'POST') {
         if (stripos($request->getPathInfo(), '/mapi') === 0) {
             return;
         }
         if (stripos($request->getPathInfo(), '/hls') === 0) {
             return;
         }
         $whiteList = array('/coin/pay/return/alipay', '/coin/pay/notify/alipay', '/coin/pay/notify/wxpay', '/pay/center/pay/alipay/return', '/pay/center/pay/wxpay/notify', '/pay/center/pay/alipay/notify', '/live/verify', '/course/order/pay/alipay/notify', '/vip/pay_notify/alipay', '/uploadfile/upload', '/uploadfile/cloud_convertcallback', '/uploadfile/cloud_convertcallback2', '/uploadfile/cloud_convertcallback3', '/uploadfile/cloud_convertheadleadercallback', '/disk/upload', '/file/upload', '/editor/upload', '/disk/convert/callback', '/partner/phpwind/api/notify', '/partner/discuz/api/notify', '/live/auth', '/edu_cloud/sms_callback');
         if (in_array($request->getPathInfo(), $whiteList)) {
             return;
         }
         if ($request->isXmlHttpRequest()) {
             $token = $request->headers->get('X-CSRF-Token');
         } else {
             $token = $request->request->get('_csrf_token', '');
         }
         $request->request->remove('_csrf_token');
         $expectedToken = $this->container->get('form.csrf_provider')->generateCsrfToken('site');
         if ($token != $expectedToken) {
             // @todo 需要区分ajax的response
             if ($request->getPathInfo() == '/admin') {
                 $token = $request->request->get('token');
                 $result = ServiceKernel::instance()->createService('CloudPlatform.AppService')->repairProblem($token);
                 $this->container->set('Topxia.RepairProblem', $result);
             } else {
                 $response = $this->container->get('templating')->renderResponse('TopxiaWebBundle:Default:message.html.twig', array('type' => 'error', 'message' => '页面已过期,请重新提交数据!', 'goto' => '', 'duration' => 0));
                 $event->setResponse($response);
             }
         }
     }
 }
Exemplo n.º 8
0
 public function onKernelRequest(GetResponseEvent $event)
 {
     $request = $event->getRequest();
     // If we have a somebody elses controller, just exit (for now)
     $controller = $request->attributes->get('_controller');
     if (false === strpos($controller, 'ZenMagick')) {
         return;
     }
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $dispatcher = $event->getDispatcher();
     $request->getSession()->restorePersistedServices();
     $dispatcher->dispatch('request_ready', new GenericEvent($this, array('request' => $request)));
     $dispatcher->dispatch('container_ready', new GenericEvent($this, array('request' => $request)));
     $this->container->get('sacsManager')->authorize($request, $request->getRequestId(), $request->getAccount());
     foreach ($this->container->get('containerTagService')->findTaggedServiceIds('zenmagick.http.session.validator') as $id => $args) {
         if (null != ($validator = $this->container->get($id)) && $validator instanceof SessionValidator) {
             $session = $request->getSession();
             if (!$validator->isValidSession($request, $session)) {
                 $session->getFlashBag()->error('Invalid session');
                 $session->migrate();
                 $event->setResponse(new RedirectResponse($request->server->get('HTTP_REFERER')));
             }
         }
     }
 }
Exemplo n.º 9
0
 /**
  * Determines and sets the Request format
  *
  * @param GetResponseEvent $event The event
  *
  * @throws NotAcceptableHttpException
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     try {
         $request = $event->getRequest();
         $format = $request->getRequestFormat(null);
         if (null === $format) {
             if ($this->formatNegotiator instanceof MediaTypeNegotiatorInterface) {
                 $mediaType = $this->formatNegotiator->getBestMediaType($request);
                 if ($mediaType) {
                     $request->attributes->set('media_type', $mediaType);
                     $format = $request->getFormat($mediaType);
                 }
             } else {
                 $format = $this->formatNegotiator->getBestFormat($request);
             }
         }
         if (null === $format) {
             if ($event->getRequestType() === HttpKernelInterface::MASTER_REQUEST) {
                 throw new NotAcceptableHttpException("No matching accepted Response format could be determined");
             }
             return;
         }
         $request->setRequestFormat($format);
     } catch (StopFormatListenerException $e) {
         // nothing to do
     }
 }
Exemplo n.º 10
0
 public function onKernelRequest(GetResponseEvent $event)
 {
     if (!$this->app['phraseanet.configuration']['api_cors']['enabled']) {
         return;
     }
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $request = $event->getRequest();
     if (!preg_match('{api/v(\\d+)}i', $request->getPathInfo() ?: '/')) {
         return;
     }
     // skip if not a CORS request
     if (!$request->headers->has('Origin') || $request->headers->get('Origin') == $request->getSchemeAndHttpHost()) {
         return;
     }
     $options = array_merge(['allow_credentials' => false, 'allow_origin' => [], 'allow_headers' => [], 'allow_methods' => [], 'expose_headers' => [], 'max_age' => 0, 'hosts' => []], $this->app['phraseanet.configuration']['api_cors']);
     // skip if the host is not matching
     if (!$this->checkHost($request, $options)) {
         return;
     }
     // perform preflight checks
     if ('OPTIONS' === $request->getMethod()) {
         $event->setResponse($this->getPreflightResponse($request, $options));
         return;
     }
     if (!$this->checkOrigin($request, $options)) {
         $response = new Response('', 403, ['Access-Control-Allow-Origin' => 'null']);
         $event->setResponse($response);
         return;
     }
     $this->app['dispatcher']->addListener(KernelEvents::RESPONSE, [$this, 'onKernelResponse']);
     $this->options = $options;
 }
 public function onKernelRequest(GetResponseEvent $event, $eventName, EventDispatcherInterface $dispatcher)
 {
     if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) {
         // don't do anything if it's not the master request
         return;
     }
     $token = $this->tokenStorage->getToken();
     if (is_null($token) || $token instanceof OAuthToken || $this->authChecker->isGranted('IS_AUTHENTICATED_REMEMBERED') === false) {
         return;
     }
     if (!$token->getUser() instanceof PersonInterface) {
         // We don't have a PersonInterface... Nothing to do here.
         return;
     }
     try {
         $this->handleTargetPath($event);
         $tasks = $this->checkTasks($event, $dispatcher);
         if (!$tasks) {
             $this->checkIntent($event);
         }
         $this->checkUnconfirmedEmail();
     } catch (RedirectResponseException $e) {
         $event->setResponse($e->getResponse());
     }
 }
 public function onKernelRequest(GetResponseEvent $event)
 {
     if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST) {
         return;
     }
     $request = $event->getRequest();
     $fc_form = $this->form_service->guessFcForm($request);
     if (!$fc_form instanceof FcForm) {
         return;
     }
     if ($fc_form->getAction()) {
         return;
     }
     /** @var FormInterface $form */
     $form = $this->form_service->create($fc_form);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $data = $form->getData();
         $this->form_service->clear($fc_form, array('template' => $data['_template'], 'data' => $this->form_service->initData($data)));
         if ($fc_form->getIsAjax()) {
             return;
         }
         if ($fc_form->getMessage()) {
             $message = $fc_form->getMessage();
         } else {
             $message = $this->translator->trans('fc.message.form.is_valid', array(), 'FenrizbesFormConstructorBundle');
         }
         // TODO: Связывать сообщение с конкретной формой и подчищать старые
         $this->session->getFlashBag()->add('fc_form.success', $message);
         $response = new RedirectResponse($this->router->generate($request->get('_route'), $request->get('_route_params')));
         $event->setResponse($response);
     }
 }
Exemplo n.º 13
0
 public function onKernelRequest(GetResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $request = $event->getRequest();
     // skip if not a CORS request
     if (!$request->headers->has('Origin') || $request->headers->get('Origin') == $request->getSchemeAndHttpHost()) {
         return;
     }
     $options = [];
     $options['allow_credentials'] = true;
     $options['allow_headers'] = true;
     $options['allow_origin'] = true;
     $options['allow_methods'] = $this->getRouteAllowMethods($request);
     // perform preflight checks
     if ('OPTIONS' === $request->getMethod()) {
         //$options = array();
         $event->setResponse($this->getPreflightResponse($request, $options));
         return;
     }
     if (!$this->checkOrigin($request, $options)) {
         return;
     }
     $this->dispatcher->addListener('kernel.response', [$this, 'onKernelResponse']);
     $this->options = $options;
 }
Exemplo n.º 14
0
 /**
  * Start the profiler if
  * - this is not a sub-request but the master request
  * - we are not on the _wdt or _profiler url
  * - if the query argument name is configured, only if it is present in the request
  * - if the url does not match one of the exclude patterns
  *
  * @param GetResponseEvent $event
  */
 public function onCoreRequest(GetResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $request = $event->getRequest();
     $requestQueryArgument = $this->container->getParameter('mjr_library_profiler.request_query_argument');
     if ($requestQueryArgument && is_null($request->query->get($requestQueryArgument))) {
         return;
     } elseif ($requestQueryArgument) {
         $request->query->remove($requestQueryArgument);
     }
     $uri = $request->getRequestUri();
     if (false !== strpos($uri, "_wdt") || false !== strpos($uri, "_profiler")) {
         return;
     }
     if ($excludePatterns = $this->container->getParameter('mjr_library_profiler.exclude_patterns')) {
         foreach ($excludePatterns as $exclude) {
             if (preg_match('@' . $exclude . '@', $uri)) {
                 return;
             }
         }
     }
     $this->collector->startProfiling($request);
 }
 /**
  * Add the csv format
  * @param GetResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     if (HttpKernel::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $event->getRequest()->setFormat('csv', 'text/csv');
 }
Exemplo n.º 16
0
 /**
  * Reads the SecurityContext from the session.
  *
  * @param GetResponseEvent $event A GetResponseEvent instance
  */
 public function handle(GetResponseEvent $event)
 {
     if (null !== $this->dispatcher && HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
         $this->dispatcher->addListener(KernelEvents::RESPONSE, array($this, 'onKernelResponse'));
     }
     $request = $event->getRequest();
     $session = $request->hasPreviousSession() ? $request->getSession() : null;
     if (null === $session || null === ($token = $session->get('_security_' . $this->contextKey))) {
         $this->context->setToken(null);
         return;
     }
     $token = unserialize($token);
     if (null !== $this->logger) {
         $this->logger->debug('Read SecurityContext from the session');
     }
     if ($token instanceof TokenInterface) {
         $token = $this->refreshUser($token);
     } elseif (null !== $token) {
         if (null !== $this->logger) {
             $this->logger->warn(sprintf('Session includes a "%s" where a security token is expected', is_object($value) ? get_class($value) : gettype($value)));
         }
         $token = null;
     }
     $this->context->setToken($token);
 }
Exemplo n.º 17
0
 /**
  * If user is logged-in in legacy_mode (e.g. legacy admin interface),
  * will inject currently logged-in user in the repository.
  *
  * @param GetResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     /** @var \eZ\Publish\Core\MVC\ConfigResolverInterface $configResolver */
     $request = $event->getRequest();
     $session = $request->getSession();
     if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST || !$this->configResolver->getParameter('legacy_mode') || !($session->isStarted() && $session->has('eZUserLoggedInID'))) {
         return;
     }
     try {
         $apiUser = $this->repository->getUserService()->loadUser($session->get('eZUserLoggedInID'));
         $this->repository->setCurrentUser($apiUser);
         $token = $this->tokenStorage->getToken();
         if ($token instanceof TokenInterface) {
             $token->setUser(new User($apiUser));
             // Don't embed if we already have a LegacyToken, to avoid nested session storage.
             if (!$token instanceof LegacyToken) {
                 $this->tokenStorage->setToken(new LegacyToken($token));
             }
         }
     } catch (NotFoundException $e) {
         // Invalid user ID, the user may have been removed => invalidate the token and the session.
         $this->tokenStorage->setToken(null);
         $session->invalidate();
     }
 }
Exemplo n.º 18
0
 /**
  * @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);
     }
 }
Exemplo n.º 19
0
 /**
  * Logs master requests on event KernelEvents::REQUEST
  *
  * @param GetResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $this->logRequest($event->getRequest());
 }
Exemplo n.º 20
0
 /**
  * @param GetResponseEvent $event
  */
 public function onCoreRequest(GetResponseEvent $event)
 {
     if (HttpKernel::MASTER_REQUEST != $event->getRequestType()) {
         return;
     }
     $token = $this->securityContext->getToken();
     if (!$token) {
         return;
     }
     if (!$token instanceof UsernamePasswordToken) {
         return;
     }
     $key = $this->helper->getSessionKey($this->securityContext->getToken());
     $request = $event->getRequest();
     $session = $event->getRequest()->getSession();
     $user = $this->securityContext->getToken()->getUser();
     if (!$session->has($key)) {
         return;
     }
     if ($session->get($key) === true) {
         return;
     }
     $state = 'init';
     if ($request->getMethod() == 'POST') {
         if ($this->helper->checkCode($user, $request->get('_code')) == true) {
             $session->set($key, true);
             return;
         }
         $state = 'error';
     }
     $event->setResponse($this->templating->renderResponse('SonataUserBundle:Admin:Security/two_step_form.html.twig', array('state' => $state)));
 }
Exemplo n.º 21
0
 /**
  * Get data from request and create Pagination and PartialResponse events.
  * @param  GetResponseEvent $event Event object with request
  */
 public function onRequest(GetResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $request = $event->getRequest();
     $pagination = new Pagination();
     $partialResponse = new PartialResponse();
     if ($request->query->has('page')) {
         $pagination->setPage($request->query->get('page'));
     }
     if ($request->query->has('sort')) {
         $pagination->setSort($request->query->get('sort'));
     }
     if ($request->query->has('items_per_page')) {
         $pagination->setItemsPerPage($request->query->get('items_per_page'));
     }
     if ($request->query->has('fields')) {
         $partialResponse->setFields($request->query->get('fields'));
     }
     $this->paginatorService->setPagination($pagination);
     $this->paginatorService->setPartialResponse($partialResponse);
     /**
      * Append all used parameters from get and post
      */
     $this->paginatorService->setUsedRouteParams(array_merge($request->query->all(), $request->request->all()));
 }
Exemplo n.º 22
0
 /**
  * @param GetResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST) {
         return;
     }
     /* @var $request Request */
     $request = $event->getRequest();
     $file = $request->getScriptName() == '/app_dev.php' ? $request->getPathInfo() : $request->getScriptName();
     if (is_file($file = $this->root_dir . '/../web' . $file)) {
         $response = (new Response())->setPublic();
         // caching in prod env
         if ($this->env == 'prod') {
             $response->setEtag(md5_file($file))->setExpires((new \DateTime())->setTimestamp(time() + 2592000))->setLastModified((new \DateTime())->setTimestamp(filemtime($file)))->headers->addCacheControlDirective('must-revalidate', true);
             // response was not modified for this request
             if ($response->isNotModified($request)) {
                 $event->setResponse($response);
                 return;
             }
         }
         // set content type
         $mimes = ['css' => 'text/css', 'js' => 'text/javascript'];
         if (isset($mimes[$ext = pathinfo($file, PATHINFO_EXTENSION)])) {
             $response->headers->set('Content-Type', $mimes[$ext]);
         } else {
             $response->headers->set('Content-Type', mime_content_type($file));
         }
         $event->setResponse($response->setContent(file_get_contents($file)));
     }
 }
 /**
  * Start collecting at the beginning of a request
  *
  * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType() || !$this->driver || !$this->repository->isEnabled()) {
         return;
     }
     $this->driver->start();
 }
Exemplo n.º 24
0
    public function onKernelRequest(GetResponseEvent $event)
    {
        if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
            return;
        }

        $request = $event->getRequest();

        // skip if not a CORS request
        if (!$request->headers->has('Origin') || $request->headers->get('Origin') == $request->getSchemeAndHttpHost()) {
            return;
        }

        $options = $this->configurationResolver->getOptions($request);

        if (!$options) {
            return;
        }

        // perform preflight checks
        if ('OPTIONS' === $request->getMethod()) {
            $event->setResponse($this->getPreflightResponse($request, $options));

            return;
        }

        if (!$this->checkOrigin($request, $options)) {
            return;
        }

        $this->dispatcher->addListener('kernel.response', array($this, 'onKernelResponse'));
        $this->options = $options;
    }
 public function onKernelRequest(GetResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
         try {
             $controller = $event->getRequest()->attributes->get('_controller');
             if (strstr($controller, '::')) {
                 //Check if its a "real controller" not assetic for example
                 $generatorYaml = $this->getGeneratorYml($controller);
                 $generator = $this->getGenerator($generatorYaml);
                 $generator->setGeneratorYml($generatorYaml);
                 $generator->setBaseGeneratorName($this->getBaseGeneratorName($controller));
                 $generator->build();
             }
         } catch (NotAdminGeneratedException $e) {
             //Lets the word running this is not an admin generated module
         }
     }
     if ($this->container->hasParameter('admingenerator.twig')) {
         $twig_params = $this->container->getParameter('admingenerator.twig');
         if (isset($twig_params['date_format'])) {
             $this->container->get('twig')->getExtension('core')->setDateFormat($twig_params['date_format'], '%d days');
         }
         if (isset($twig_params['number_format'])) {
             $this->container->get('twig')->getExtension('core')->setNumberFormat($twig_params['number_format']['decimal'], $twig_params['number_format']['decimal_point'], $twig_params['number_format']['thousand_separator']);
         }
     }
 }
Exemplo n.º 26
0
 public function onRequestPre(GetResponseEvent $event)
 {
     if ($event->getRequestType() !== HttpKernelInterface::MASTER_REQUEST) {
         return;
     }
     $this->start = microtime(true);
 }
Exemplo n.º 27
0
 public function handle(GetResponseEvent $event)
 {
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
         return;
     }
     $request = $event->getRequest();
     // there may not be authentication information on this request
     if (!$request->headers->has('Authorization')) {
         return;
     }
     return;
     // format should be "Authorization: token ABCDEFG"
     $tokenString = 'HARDCODED';
     if (!$tokenString) {
         // there's no authentication info for us to process
         return;
     }
     // create an object that just exists to hold onto the token string for us
     $token = new ApiAuthToken();
     $token->setAuthToken($tokenString);
     $returnValue = $this->authenticationManager->authenticate($token);
     if ($returnValue instanceof TokenInterface) {
         return $this->securityContext->setToken($returnValue);
     }
 }
Exemplo n.º 28
0
    public function onKernelRequest(GetResponseEvent $event)
    {
        $request = $event->getRequest();

        if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
            $this->urlMatcher->getContext()->fromRequest($request);
        }

        if ($request->attributes->has('_controller')) {
            // routing is already done
            return;
        }

        // add attributes based on the path info (routing)
        try {
            $parameters = $this->urlMatcher->match($request->getPathInfo());

            if (null !== $this->logger) {
                $this->logger->info(sprintf('Matched route "%s" (parameters: %s)', $parameters['_route'], $this->parametersToString($parameters)));
            }

            $request->attributes->add($parameters);
            unset($parameters['_route']);
            $request->attributes->set('_route_params', $parameters);
        } catch (ResourceNotFoundException $e) {
            $message = sprintf('No route found for "%s %s"', $request->getMethod(), $request->getPathInfo());

            throw new NotFoundHttpException($message, $e);
        } catch (MethodNotAllowedException $e) {
            $message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), strtoupper(implode(', ', $e->getAllowedMethods())));

            throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);
        }
    }
Exemplo n.º 29
0
 public function doRequest(GetResponseEvent $event)
 {
     if ($event->getRequestType() !== HttpKernel::MASTER_REQUEST) {
         return;
     }
     $prefix = ConfigQuery::read("back_office_path");
     $defaultEnabled = intval(ConfigQuery::read("back_office_path_default_enabled", "1"));
     $pathInfo = $event->getRequest()->getPathInfo();
     $url = $event->getRequest()->server->get('REQUEST_URI');
     // Discard the default /admin URL
     $isValid = 1 !== $defaultEnabled && strpos($pathInfo, '/' . BackOfficePath::DEFAULT_THELIA_PREFIX) === 0 && $prefix !== null && $prefix !== "";
     if ($isValid) {
         /** @var \Symfony\Component\Routing\RequestContext $context */
         $context = $event->getKernel()->getContainer()->get('request.context');
         $context->fromRequest($event->getRequest());
         throw new NotFoundHttpException();
     }
     // Check if the URL is an backOffice URL
     $isValid = strpos($pathInfo, '/' . $prefix) === 0 && $prefix !== null && $prefix !== "";
     if ($isValid) {
         $newUrl = $this->replaceUrl($url, $prefix, BackOfficePath::DEFAULT_THELIA_PREFIX);
         $event->getRequest()->server->set('REQUEST_URI', $newUrl);
         $event->getRequest()->initialize($event->getRequest()->query->all(), $event->getRequest()->request->all(), $event->getRequest()->attributes->all(), $event->getRequest()->cookies->all(), $event->getRequest()->files->all(), $event->getRequest()->server->all(), $event->getRequest()->getContent());
     }
 }
 public function onKernelRequest(GetResponseEvent $event)
 {
     $request = $event->getRequest();
     // sub requests and ajax requests should not be handled here
     if (HttpKernel::MASTER_REQUEST != $event->getRequestType() || $request->isXmlHttpRequest()) {
         return;
     }
     if (null === $request->attributes->get('_route')) {
         $pathInfo = $request->getPathInfo();
         // check first if it is /admin/ or /institution/, do nothing if it matches since it should be forwarded to the router
         // this check is necessary if this listner's priority is higher than RouterListener priority to save execution time
         //             if ((strpos($pathInfo, '/admin') !== false) || (strpos($pathInfo, '/institution') !== false) || (strpos($pathInfo, '/frontend_search') !== false)) {
         //                 return;
         //             }
         if ($this->isConfiguredRoute($pathInfo)) {
             return;
         }
         $routeObj = null;
         if (is_null($routeObj = $this->routerService->match($pathInfo))) {
             return;
         }
         if ($routeObj->getWebsiteSection() == 1) {
             $controller = 'AdminBundle:StaticPage:index';
         } else {
             if ($routeObj->getWebsiteSection() == 2) {
                 $controller = 'InstitutionBundle:StaticPage:index';
             } else {
                 $controller = 'FrontendBundle:StaticPage:index';
             }
         }
         $request->attributes->set('_controller', $controller);
     }
 }