Skip to content

Commit 4e6b770

Browse files
author
Sergey Shvets
committed
MAGETWO-83646: Encrypted scope-specific config values fail to decrypt on PHP7 #8591
1 parent 6a52bd3 commit 4e6b770

File tree

5 files changed

+250
-135
lines changed

5 files changed

+250
-135
lines changed

app/code/Magento/Config/App/Config/Source/RuntimeConfigSource.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
67
namespace Magento\Config\App\Config\Source;
78

89
use Magento\Framework\App\Config\ConfigSourceInterface;
@@ -84,12 +85,12 @@ private function loadConfig()
8485
}
8586
}
8687

87-
foreach ($config as $scope => &$item) {
88+
foreach ($config as $scope => $item) {
8889
if ($scope === ScopeConfigInterface::SCOPE_TYPE_DEFAULT) {
89-
$item = $this->converter->convert($item);
90+
$config[$scope] = $this->converter->convert($item);
9091
} else {
91-
foreach ($item as &$scopeItems) {
92-
$scopeItems = $this->converter->convert($scopeItems);
92+
foreach ($item as $scopeCode => $scopeItems) {
93+
$config[$scope][$scopeCode] = $this->converter->convert($scopeItems);
9394
}
9495
}
9596
}

app/code/Magento/Config/Block/System/Config/Form.php

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
76
namespace Magento\Config\Block\System\Config;
87

98
use Magento\Config\App\Config\Type\System;
@@ -351,21 +350,21 @@ protected function _initElement(
351350
$data = $this->_configData[$path];
352351
$inherit = false;
353352

353+
if ($field->hasBackendModel()) {
354+
$backendModel = $field->getBackendModel();
355+
$backendModel->setPath($path)
356+
->setValue($data)
357+
->setWebsite($this->getWebsiteCode())
358+
->setStore($this->getStoreCode())
359+
->afterLoad();
360+
$data = $backendModel->getValue();
361+
}
362+
354363
} elseif ($field->getConfigPath() !== null) {
355364
$data = $this->getConfigValue($field->getConfigPath());
356365
} else {
357366
$data = $this->getConfigValue($path);
358367
}
359-
360-
if ($field->hasBackendModel()) {
361-
$backendModel = $field->getBackendModel();
362-
$backendModel->setPath($path)
363-
->setValue($data)
364-
->setWebsite($this->getWebsiteCode())
365-
->setStore($this->getStoreCode())
366-
->afterLoad();
367-
$data = $backendModel->getValue();
368-
}
369368
}
370369
$fieldRendererClass = $field->getFrontendModel();
371370
if ($fieldRendererClass) {

0 commit comments

Comments
 (0)