- <?php
- /*
-  * This file is part of EC-CUBE
-  *
-  * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
-  *
-  * http://www.ec-cube.co.jp/
-  *
-  * For the full copyright and license information, please view the LICENSE
-  * file that was distributed with this source code.
-  */
- namespace Eccube\EventListener;
- use Eccube\Common\EccubeConfig;
- use Eccube\Request\Context;
- use Symfony\Component\EventDispatcher\EventSubscriberInterface;
- use Symfony\Component\HttpKernel\Event\RequestEvent;
- use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
- class RestrictFileUploadListener implements EventSubscriberInterface
- {
-     /**
-      * @var EccubeConfig
-      */
-     protected $eccubeConfig;
-     /**
-      * @var Context
-      */
-     protected $requestContext;
-     public function __construct(EccubeConfig $eccubeConfig, Context $requestContext)
-     {
-         $this->eccubeConfig = $eccubeConfig;
-         $this->requestContext = $requestContext;
-     }
-     public function onKernelRequest(RequestEvent $event)
-     {
-         if (!$event->isMainRequest()) {
-             return;
-         }
-         if (!$this->requestContext->isAdmin()) {
-             return;
-         }
-         $route = $event->getRequest()->attributes->get('_route');
-         $restrictUrls = $this->eccubeConfig['eccube_restrict_file_upload_urls'];
-         if ($this->eccubeConfig['eccube_restrict_file_upload'] === '1' && in_array($route, $restrictUrls)) {
-             throw new AccessDeniedHttpException(trans('exception.error_message_restrict_url'));
-         }
-     }
-     public static function getSubscribedEvents()
-     {
-         return [
-             'kernel.request' => ['onKernelRequest', 7], // RouterListener より必ず後で実行する
-         ];
-     }
- }
-