Skip to content

Commit 16b0e31

Browse files
author
Stanislav Idolov
authored
ENGCOM-2838: Use route ID when creating secret keys in backend menus instead of route name #17650
2 parents d51a4fd + 7f83494 commit 16b0e31

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

app/code/Magento/Backend/Block/Menu.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,23 @@ class Menu extends \Magento\Backend\Block\Template
7474
*/
7575
private $anchorRenderer;
7676

77+
/**
78+
* @var ConfigInterface
79+
*/
80+
private $routeConfig;
81+
7782
/**
7883
* @param Template\Context $context
7984
* @param \Magento\Backend\Model\UrlInterface $url
8085
* @param \Magento\Backend\Model\Menu\Filter\IteratorFactory $iteratorFactory
8186
* @param \Magento\Backend\Model\Auth\Session $authSession
8287
* @param \Magento\Backend\Model\Menu\Config $menuConfig
8388
* @param \Magento\Framework\Locale\ResolverInterface $localeResolver
89+
* @param \Magento\Framework\App\Route\ConfigInterface $routeConfig
8490
* @param array $data
8591
* @param MenuItemChecker|null $menuItemChecker
8692
* @param AnchorRenderer|null $anchorRenderer
93+
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
8794
*/
8895
public function __construct(
8996
\Magento\Backend\Block\Template\Context $context,
@@ -94,7 +101,8 @@ public function __construct(
94101
\Magento\Framework\Locale\ResolverInterface $localeResolver,
95102
array $data = [],
96103
MenuItemChecker $menuItemChecker = null,
97-
AnchorRenderer $anchorRenderer = null
104+
AnchorRenderer $anchorRenderer = null,
105+
\Magento\Framework\App\Route\ConfigInterface $routeConfig = null
98106
) {
99107
$this->_url = $url;
100108
$this->_iteratorFactory = $iteratorFactory;
@@ -103,6 +111,9 @@ public function __construct(
103111
$this->_localeResolver = $localeResolver;
104112
$this->menuItemChecker = $menuItemChecker;
105113
$this->anchorRenderer = $anchorRenderer;
114+
$this->routeConfig = $routeConfig ?:
115+
\Magento\Framework\App\ObjectManager::getInstance()
116+
->get(\Magento\Framework\App\Route\ConfigInterface::class);
106117
parent::__construct($context, $data);
107118
}
108119

@@ -203,8 +214,9 @@ protected function _afterToHtml($html)
203214
*/
204215
protected function _callbackSecretKey($match)
205216
{
217+
$routeId = $this->routeConfig->getRouteByFrontName($match[1]);
206218
return \Magento\Backend\Model\UrlInterface::SECRET_KEY_PARAM_NAME . '/' . $this->_url->getSecretKey(
207-
$match[1],
219+
$routeId,
208220
$match[2],
209221
$match[3]
210222
);

0 commit comments

Comments
 (0)