Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/app/code/Zendesk/Zendesk/Plugin/Webapi/Controller/Rest/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/app/code/Zendesk/Zendesk/Plugin/Webapi/Controller/Rest/Router.php
<?php

namespace Zendesk\Zendesk\Plugin\Webapi\Controller\Rest;

use Magento\Webapi\Controller\Rest\Router as OriginalRouter;

class Router
{
    const ROUTE_PATH = '/V1/zendesk/cors';

    /**
     * @var \Magento\Framework\Controller\Router\Route\Factory
     */
    protected $routeFactory;
    /**
     * @var \Zendesk\Zendesk\Helper\CorsHelper
     */
    protected $corsHelper;

    /**
     * Router constructor.
     * @param \Magento\Framework\Controller\Router\Route\Factory $routeFactory
     * @param \Zendesk\Zendesk\Helper\CorsHelper $corsHelper
     */
    public function __construct(
        \Magento\Framework\Controller\Router\Route\Factory $routeFactory,
        \Zendesk\Zendesk\Helper\CorsHelper $corsHelper
    ) {
        $this->routeFactory = $routeFactory;
        $this->corsHelper = $corsHelper;
    }

    /**
     * If webapi request is OPTIONS, manually match to Zendesk CORS API route
     *
     * @param OriginalRouter $subject
     * @param callable $proceed
     * @param \Magento\Framework\Webapi\Rest\Request $request
     * @return OriginalRouter\Route
     * @throws \Magento\Framework\Webapi\Exception
     */
    public function aroundMatch(
        OriginalRouter $subject,
        callable $proceed,
        \Magento\Framework\Webapi\Rest\Request $request
    ) {
        try {
            // Optimistically try to simply return original method's return value.
            return $proceed($request);
        } catch (\Magento\Framework\Webapi\Exception $ex) {
            // This exception indicates the request is not routable

            if ($this->corsHelper->isZendeskCorsRequest($request)) {
                // If request is actually Zendesk CORS request, manually route.
                return $this->getCorsRoute();
            } else {
                // Otherwise, allow exception
                throw $ex;
            }
        }
    }

    /**
     * Get CORS API route
     *
     * @return OriginalRouter\Route
     */
    protected function getCorsRoute()
    {
        /** @var $route \Magento\Webapi\Controller\Rest\Router\Route */
        $route = $this->routeFactory->createRoute(
            \Magento\Webapi\Controller\Rest\Router\Route::class,
            self::ROUTE_PATH
        );

        $route->setServiceClass(\Zendesk\Zendesk\Api\CorsRepositoryInterface::class)
            ->setServiceMethod('accessControlAllowOrigin')
            ->setAclResources([\Magento\Integration\Api\AuthorizationServiceInterface::PERMISSION_ANONYMOUS]);

        return $route;
    }
}

Spamworldpro Mini