Skip to content

Commit 455654a

Browse files
committed
MC-15977: PageBuilder preview
1 parent 5033599 commit 455654a

File tree

5 files changed

+31
-91
lines changed

5 files changed

+31
-91
lines changed

app/code/Magento/PageBuilder/Controller/ContentType/Preview.php

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,28 @@ class Preview extends \Magento\Framework\App\Action\Action implements HttpPostAc
2626
*/
2727
private $rendererPool;
2828

29+
/**
30+
* @var \Magento\Backend\Model\Auth
31+
*/
32+
private $auth;
33+
2934
/**
3035
* Constructor
3136
*
3237
* @param \Magento\Backend\App\Action\Context $context
3338
* @param \Magento\PageBuilder\Model\Stage\RendererPool $rendererPool
39+
* @param \Magento\Backend\Model\Auth $auth
3440
*/
3541
public function __construct(
3642
\Magento\Backend\App\Action\Context $context,
37-
\Magento\PageBuilder\Model\Stage\RendererPool $rendererPool
43+
\Magento\PageBuilder\Model\Stage\RendererPool $rendererPool,
44+
\Magento\Backend\Model\Auth $auth = null
3845
) {
3946
parent::__construct($context);
4047

4148
$this->rendererPool = $rendererPool;
49+
$this->auth = $auth ?? \Magento\Framework\App\ObjectManager::getInstance()
50+
->get(\Magento\Backend\Model\Auth::class);
4251
}
4352

4453
/**
@@ -48,14 +57,18 @@ public function __construct(
4857
*/
4958
public function execute()
5059
{
51-
$pageResult = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
52-
// Some template filters and directive processors expect this to be called in order to function.
53-
$pageResult->initLayout();
60+
if ($this->auth->isLoggedIn()) {
61+
$pageResult = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
62+
// Some template filters and directive processors expect this to be called in order to function.
63+
$pageResult->initLayout();
64+
65+
$params = $this->getRequest()->getParams();
66+
$renderer = $this->rendererPool->getRenderer($params['role']);
67+
$result = ['data' => $renderer->render($params)];
5468

55-
$params = $this->getRequest()->getParams();
56-
$renderer = $this->rendererPool->getRenderer($params['role']);
57-
$result = ['data' => $renderer->render($params)];
69+
return $this->resultFactory->create(ResultFactory::TYPE_JSON)->setData($result);
70+
}
5871

59-
return $this->resultFactory->create(ResultFactory::TYPE_JSON)->setData($result);
72+
$this->_forward('noroute');
6073
}
6174
}

app/code/Magento/PageBuilder/Model/Stage/Config.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,9 @@ public function getConfig()
135135
'content_types' => $this->getContentTypes(),
136136
'stage_config' => $this->data,
137137
'media_url' => $this->urlBuilder->getBaseUrl(['_type' => UrlInterface::URL_TYPE_MEDIA]),
138-
'preview_url' => $this->frontendUrlBuilder->getUrl('pagebuilder/contenttype/preview'),
138+
'preview_url' => $this->frontendUrlBuilder
139+
->addSessionParam()
140+
->getUrl('pagebuilder/contenttype/preview'),
139141
'column_grid_default' => $this->scopeConfig->getValue(self::XML_PATH_COLUMN_GRID_DEFAULT),
140142
'column_grid_max' => $this->scopeConfig->getValue(self::XML_PATH_COLUMN_GRID_MAX),
141143
'can_use_inline_editing_on_stage' => $this->isWysiwygProvisionedForEditingOnStage(),

app/code/Magento/PageBuilder/Plugin/Framework/App/FrontController.php

Lines changed: 0 additions & 69 deletions
This file was deleted.

app/code/Magento/PageBuilder/Plugin/Framework/Session/SidResolver.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,25 @@ public function __construct(
2525
}
2626

2727
/**
28+
* Get Sid for pagebuilder preview
29+
*
2830
* @param \Magento\Framework\Session\SidResolver $subject
29-
* @param \Closure $proceed
31+
* @param string|null $result
3032
* @param \Magento\Framework\Session\SessionManagerInterface $session
3133
*
3234
* @return string|null
3335
*/
34-
public function aroundGetSid(
36+
public function afterGetSid(
3537
\Magento\Framework\Session\SidResolver $subject,
36-
\Closure $proceed,
38+
$result,
3739
\Magento\Framework\Session\SessionManagerInterface $session
3840
) {
39-
if (strpos($this->request->getPathInfo(), 'pagebuilder/contenttype/preview')) {
41+
if (strpos($this->request->getPathInfo(), 'pagebuilder/contenttype/preview') !== false) {
4042
return $this->request->getQuery(
4143
$subject->getSessionIdQueryParam($session)
4244
);
4345
}
4446

45-
return $proceed($session);
47+
return $result;
4648
}
4749
}

app/code/Magento/PageBuilder/etc/di.xml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,6 @@
140140
</argument>
141141
</arguments>
142142
</type>
143-
<type name="Magento\PageBuilder\Plugin\Framework\App\FrontController">
144-
<arguments>
145-
<argument name="auth" xsi:type="object">\Magento\Backend\Model\Auth\Proxy</argument>
146-
</arguments>
147-
</type>
148-
<type name="Magento\Framework\App\FrontControllerInterface">
149-
<plugin name="pagebuilder_preview_permissions_check" type="Magento\PageBuilder\Plugin\Framework\App\FrontController" />
150-
</type>
151143
<type name="Magento\Framework\Session\SidResolver">
152144
<plugin name="pagebuilder_preview_sid_resolving" type="Magento\PageBuilder\Plugin\Framework\Session\SidResolver" />
153145
</type>

0 commit comments

Comments
 (0)