Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
GridToCsv.php
Go to the documentation of this file.
1 <?php
7 
14 use Psr\Log\LoggerInterface;
15 
19 class GridToCsv extends Action
20 {
24  protected $converter;
25 
29  protected $fileFactory;
30 
34  private $filter;
35 
39  private $logger;
40 
48  public function __construct(
49  Context $context,
52  Filter $filter = null,
53  LoggerInterface $logger = null
54  ) {
55  parent::__construct($context);
56  $this->converter = $converter;
57  $this->fileFactory = $fileFactory;
58  $this->filter = $filter ?: ObjectManager::getInstance()->get(Filter::class);
59  $this->logger = $logger ?: ObjectManager::getInstance()->get(LoggerInterface::class);
60  }
61 
68  public function execute()
69  {
70  return $this->fileFactory->create('export.csv', $this->converter->getCsvFile(), 'var');
71  }
72 
78  protected function _isAllowed()
79  {
80  if ($this->_request->getParam('namespace')) {
81  try {
82  $component = $this->filter->getComponent();
83  $dataProviderConfig = $component->getContext()
84  ->getDataProvider()
85  ->getConfigData();
86  if (isset($dataProviderConfig['aclResource'])) {
87  return $this->_authorization->isAllowed(
88  $dataProviderConfig['aclResource']
89  );
90  }
91  } catch (\Throwable $exception) {
92  $this->logger->critical($exception);
93 
94  return false;
95  }
96  }
97 
98  return true;
99  }
100 }
__construct(Context $context, ConvertToCsv $converter, FileFactory $fileFactory, Filter $filter=null, LoggerInterface $logger=null)
Definition: GridToCsv.php:48