123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Ui\Controller\Adminhtml\Export;
- use Magento\Backend\App\Action;
- use Magento\Backend\App\Action\Context;
- use Magento\Ui\Model\Export\ConvertToXml;
- use Magento\Framework\App\Response\Http\FileFactory;
- use Magento\Framework\App\ObjectManager;
- use Magento\Ui\Component\MassAction\Filter;
- use Psr\Log\LoggerInterface;
- /**
- * Class Render
- */
- class GridToXml extends Action
- {
- /**
- * @var ConvertToXml
- */
- protected $converter;
- /**
- * @var FileFactory
- */
- protected $fileFactory;
- /**
- * @var Filter
- */
- private $filter;
- /**
- * @var LoggerInterface
- */
- private $logger;
- /**
- * @param Context $context
- * @param ConvertToXml $converter
- * @param FileFactory $fileFactory
- * @param Filter|null $filter
- * @param LoggerInterface|null $logger
- */
- public function __construct(
- Context $context,
- ConvertToXml $converter,
- FileFactory $fileFactory,
- Filter $filter = null,
- LoggerInterface $logger = null
- ) {
- parent::__construct($context);
- $this->converter = $converter;
- $this->fileFactory = $fileFactory;
- $this->filter = $filter ?: ObjectManager::getInstance()->get(Filter::class);
- $this->logger = $logger ?: ObjectManager::getInstance()->get(LoggerInterface::class);
- }
- /**
- * Export data provider to XML
- *
- * @throws \Magento\Framework\Exception\LocalizedException
- * @return \Magento\Framework\App\ResponseInterface
- */
- public function execute()
- {
- return $this->fileFactory->create('export.xml', $this->converter->getXmlFile(), 'var');
- }
- /**
- * Checking if the user has access to requested component.
- *
- * @inheritDoc
- */
- protected function _isAllowed()
- {
- if ($this->_request->getParam('namespace')) {
- try {
- $component = $this->filter->getComponent();
- $dataProviderConfig = $component->getContext()
- ->getDataProvider()
- ->getConfigData();
- if (isset($dataProviderConfig['aclResource'])) {
- return $this->_authorization->isAllowed(
- $dataProviderConfig['aclResource']
- );
- }
- } catch (\Throwable $exception) {
- $this->logger->critical($exception);
- return false;
- }
- }
- return true;
- }
- }
|