111 \
Magento\Framework\
App\Route\ConfigInterface $routeConfig,
113 \
Magento\Framework\
Url\SecurityInfoInterface $urlSecurityInfo,
114 \
Magento\Framework\
Url\ScopeResolverInterface $scopeResolver,
117 \
Magento\Framework\
Url\RouteParamsResolverFactory $routeParamsResolverFactory,
118 \
Magento\Framework\
Url\QueryParamsResolverInterface $queryParamsResolver,
119 \
Magento\Framework\
App\Config\ScopeConfigInterface $scopeConfig,
122 \
Magento\Backend\Helper\Data $backendHelper,
131 Json $serializer =
null 142 $routeParamsResolverFactory,
143 $queryParamsResolver,
151 $this->_backendHelper = $backendHelper;
152 $this->_menuConfig = $menuConfig;
154 $this->_session = $authSession;
156 $this->_storeFactory = $storeFactory;
166 if ($this->
hasData(
'secure_is_forced')) {
167 return $this->
getData(
'secure');
169 return $this->_scopeConfig->isSetFlag(
'web/secure/use_in_adminhtml');
181 if (isset(
$data[
'_nosecret'])) {
182 $this->setNoSecret(
true);
183 unset(
$data[
'_nosecret']);
185 $this->setNoSecret(
false);
187 unset(
$data[
'_scope_to_url']);
188 return parent::_setRouteParams(
$data, $unsetOldParams);
198 public function getUrl($routePath =
null, $routeParams =
null)
200 if (filter_var($routePath, FILTER_VALIDATE_URL)) {
204 $cacheSecretKey =
false;
205 if (isset($routeParams[
'_cache_secret_key'])) {
206 unset($routeParams[
'_cache_secret_key']);
207 $cacheSecretKey =
true;
209 $result = parent::getUrl($routePath, $routeParams);
221 if (!isset($routeParams[self::SECRET_KEY_PARAM_NAME])) {
222 if (!is_array($routeParams)) {
225 $secretKey = $cacheSecretKey
226 ?
"\${$routeName}/{$controllerName}/{$actionName}\$" 227 : $this->
getSecretKey($routeName, $controllerName, $actionName);
231 if (!empty($extraParams)) {
232 $routeParams = array_merge($extraParams, $routeParams);
235 return parent::getUrl(
"{$routeName}/{$controllerName}/{$actionName}", $routeParams);
248 $salt = $this->formKey->getFormKey();
251 if (
$request->getBeforeForwardInfo(
'route_name') !==
null) {
252 $routeName =
$request->getBeforeForwardInfo(
'route_name');
254 $routeName =
$request->getRouteName();
258 if (
$request->getBeforeForwardInfo(
'controller_name') !==
null) {
265 if (
$request->getBeforeForwardInfo(
'action_name') !==
null) {
266 $action =
$request->getBeforeForwardInfo(
'action_name');
268 $action =
$request->getActionName();
271 $secret = $routeName .
$controller . $action . $salt;
272 return $this->_encryptor->getHash($secret);
282 return $this->_scopeConfig->isSetFlag(self::XML_PATH_USE_SECURE_KEY) && !$this->getNoSecret();
292 $this->setNoSecret(
false);
303 $this->setNoSecret(
true);
314 $this->_cache->clean([\
Magento\Backend\Block\Menu::CACHE_TAGS]);
325 $this->_scopeConfig->getValue(self::XML_PATH_STARTUP_MENU_ITEM, $this->_scopeType)
327 if ($menuItem !==
null) {
328 if ($menuItem->isAllowed() && $menuItem->getAction()) {
329 return $menuItem->getAction();
344 $item = $menu->getFirstAvailable();
349 $user->setHasAvailableResources(
false);
351 $action =
'*/*/denied';
363 if ($this->_menu ===
null) {
364 $this->_menu = $this->_menuConfig->getMenu();
398 if (!$this->
_getData(
'area_front_name')) {
399 $this->
setData(
'area_front_name', $this->_backendHelper->getAreaFrontName());
401 return $this->
_getData(
'area_front_name');
412 $path = parent::_getActionPath();
428 if (!$this->_scope) {
429 $this->_scope = $this->_storeFactory->create(
432 'data' => [
'code' =>
'admin',
'force_disable_rewrites' =>
false,
'disable_store_in_url' =>
true],
447 return 'admin/' .
$path;
459 return $this->_scopeConfig->getValue(
$path);
getSecretKey($routeName=null, $controller=null, $action=null)
_getActionName($default=null)
getData($key='', $index=null)
const SECRET_KEY_PARAM_NAME
_getRouteName($default=null)
getUrl($routePath=null, $routeParams=null)
_setRouteParams(array $data, $unsetOldParams=true)
setData($key, $value=null)
const XML_PATH_USE_SECURE_KEY
_getControllerName($default=null)
setSession(\Magento\Backend\Model\Auth\Session $session)
__construct(\Magento\Framework\App\Route\ConfigInterface $routeConfig, \Magento\Framework\App\RequestInterface $request, \Magento\Framework\Url\SecurityInfoInterface $urlSecurityInfo, \Magento\Framework\Url\ScopeResolverInterface $scopeResolver, \Magento\Framework\Session\Generic $session, \Magento\Framework\Session\SidResolverInterface $sidResolver, \Magento\Framework\Url\RouteParamsResolverFactory $routeParamsResolverFactory, \Magento\Framework\Url\QueryParamsResolverInterface $queryParamsResolver, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\Url\RouteParamsPreprocessorInterface $routeParamsPreprocessor, $scopeType, \Magento\Backend\Helper\Data $backendHelper, \Magento\Backend\Model\Menu\Config $menuConfig, \Magento\Framework\App\CacheInterface $cache, \Magento\Backend\Model\Auth\Session $authSession, \Magento\Framework\Encryption\EncryptorInterface $encryptor, \Magento\Store\Model\StoreFactory $storeFactory, \Magento\Framework\Data\Form\FormKey $formKey, array $data=[], HostChecker $hostChecker=null, Json $serializer=null)