Skip to content

Commit e26d38b

Browse files
author
Sergii Kovalenko
committed
MAGETWO-60890: Fatal error logging in as admin user with restricted role
1 parent b7247d4 commit e26d38b

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

app/code/Magento/Store/Model/Config/Processor/Fallback.php

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,19 @@ class Fallback implements PostProcessorInterface
3333
*/
3434
private $resourceConnection;
3535

36+
/**
37+
* @var array
38+
*/
39+
private $storeData = [];
40+
41+
/**
42+
* @var array
43+
*/
44+
private $websiteData = [];
3645
/**
3746
* @var Store
3847
*/
3948
private $storeResource;
40-
4149
/**
4250
* @var Website
4351
*/
@@ -64,6 +72,9 @@ public function __construct(
6472
*/
6573
public function process(array $data)
6674
{
75+
$this->storeData = $this->storeResource->readAllStores();
76+
$this->websiteData = $this->websiteResource->readAllWebsites();
77+
6778
$defaultConfig = isset($data['default']) ? $data['default'] : [];
6879
$result = [
6980
'default' => $defaultConfig,
@@ -92,8 +103,7 @@ private function prepareWebsitesConfig(
92103
array $websitesConfig
93104
) {
94105
$result = [];
95-
/** @var WebsiteInterface $website */
96-
foreach ($this->websiteResource->readAllWebsites() as $website) {
106+
foreach ($this->websiteData as $website) {
97107
$code = $website['code'];
98108
$id = $website['website_id'];
99109
$websiteConfig = isset($websitesConfig[$code]) ? $websitesConfig[$code] : [];
@@ -118,8 +128,7 @@ private function prepareStoresConfig(
118128
) {
119129
$result = [];
120130

121-
/** @var StoreInterface $store */
122-
foreach ($this->storeResource->readAllStores() as $store) {
131+
foreach ($this->storeData as $store) {
123132
$code = $store['code'];
124133
$id = $store['store_id'];
125134
$websiteConfig = [];
@@ -142,8 +151,7 @@ private function prepareStoresConfig(
142151
*/
143152
private function getWebsiteConfig(array $websites, $id)
144153
{
145-
/** @var WebsiteInterface $website */
146-
foreach ($this->websiteResource->readAllWebsites() as $website) {
154+
foreach ($this->websiteData as $website) {
147155
if ($website['website_id'] == $id) {
148156
$code = $website['website_id'];
149157
return isset($websites[$code]) ? $websites[$code] : [];

0 commit comments

Comments
 (0)