13 use Psr\Log\LoggerInterface;
27 private $contentTypeResolver;
32 private $resultJsonFactory;
58 LoggerInterface $logger =
null 60 parent::__construct($context,
$factory);
61 $this->contentTypeResolver = $contentTypeResolver;
63 ->get(\
Magento\Framework\Controller\Result\JsonFactory::class);
65 ->get(\
Magento\Framework\Escaper::class);
67 ->get(\Psr\Log\LoggerInterface::class);
75 if ($this->_request->getParam(
'namespace') ===
null) {
82 $component = $this->factory->create($this->
getRequest()->getParam(
'namespace'));
83 if ($this->validateAclResource($component->getContext()->getDataProvider()->getConfigData())) {
85 $this->
getResponse()->appendBody((
string)$component->render());
87 $contentType = $this->contentTypeResolver->resolve($component->getContext());
88 $this->
getResponse()->setHeader(
'Content-Type', $contentType,
true);
90 }
catch (\
Magento\Framework\Exception\LocalizedException $e) {
91 $this->logger->critical($e);
93 'error' => $this->escaper->escapeHtml($e->getMessage()),
94 'errorcode' => $this->escaper->escapeHtml($e->getCode())
97 $resultJson = $this->resultJsonFactory->create();
98 $resultJson->setStatusHeader(
99 \
Zend\Http\Response::STATUS_CODE_400,
100 \
Zend\Http\AbstractMessage::VERSION_11,
104 return $resultJson->setData(
$result);
105 }
catch (\Exception $e) {
106 $this->logger->critical($e);
108 'error' =>
__(
'UI component could not be rendered because of system exception'),
109 'errorcode' => $this->escaper->escapeHtml($e->getCode())
112 $resultJson = $this->resultJsonFactory->create();
113 $resultJson->setStatusHeader(
114 \
Zend\Http\Response::STATUS_CODE_400,
115 \
Zend\Http\AbstractMessage::VERSION_11,
119 return $resultJson->setData(
$result);
144 private function validateAclResource($dataProviderConfigData)
146 if (isset($dataProviderConfigData[
'aclResource'])) {
147 if (!$this->_authorization->isAllowed($dataProviderConfigData[
'aclResource'])) {
148 if (!$this->_request->isAjax()) {
_redirect($path, $arguments=[])
prepareComponent(UiComponentInterface $component)
__construct(Context $context, UiComponentFactory $factory, UiComponentTypeResolver $contentTypeResolver, JsonFactory $resultJsonFactory=null, Escaper $escaper=null, LoggerInterface $logger=null)