From cb32e372204106c16b296eeffff0a88322883379 Mon Sep 17 00:00:00 2001 From: Frederik Rommel Date: Tue, 16 Jul 2024 10:25:14 +0200 Subject: [PATCH] fix overriding configuration --- Helper/Data.php | 22 ++++++++++------------ etc/adminhtml/system.xml | 28 +++++++++++++++++++++------- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/Helper/Data.php b/Helper/Data.php index 01d2e58..0924f0a 100644 --- a/Helper/Data.php +++ b/Helper/Data.php @@ -12,7 +12,6 @@ use Magento\Framework\App\Helper\Context; use Magento\Framework\App\ProductMetadataInterface; use Magento\Framework\App\State; -use Magento\Framework\DB\Adapter\TableNotFoundException; use Magento\Framework\Serialize\Serializer\Json; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; @@ -168,19 +167,18 @@ public function collectModuleConfig(): array return $this->config; } - try { - $this->config['enabled'] = $this->scopeConfig->getValue('sentry/environment/enabled') - ?? $this->deploymentConfig->get('sentry') !== null; - } catch (TableNotFoundException $e) { - $this->config['enabled'] = null; + $this->config['enabled'] = $this->deploymentConfig->get('sentry') !== null; + + foreach ($this->configKeys as $key) { + $this->config[$key] = $this->deploymentConfig->get('sentry/' . $key); } - foreach ($this->configKeys as $value) { - try { - $this->config[$value] = $this->scopeConfig->getValue('sentry/environment/'.$value) - ?? $this->deploymentConfig->get('sentry/'.$value); - } catch (TableNotFoundException $e) { - $this->config[$value] = null; + if ($this->scopeConfig->isSetFlag('sentry/environment/override')) { + $allowedConfigKeys = array_merge(['enabled'], $this->configKeys); + foreach ($this->scopeConfig->getValue('sentry/environment') as $key => $value) { + if ($value !== null && in_array($key, $allowedConfigKeys, true)) { + $this->config[$key] = $value; + } } } diff --git a/etc/adminhtml/system.xml b/etc/adminhtml/system.xml index 02a14ec..0645ace 100755 --- a/etc/adminhtml/system.xml +++ b/etc/adminhtml/system.xml @@ -85,46 +85,60 @@ - + + + Magento\Config\Model\Config\Source\Yesno + If enabled, the deployment configuration from env.php got overridden by the following fields. Reset fields to system value, if you want to use the deployment configuration from env.php + + Magento\Config\Model\Config\Source\Yesno + + 1 + - + + 1 1 - + + 1 1 - + + 1 1 - + JustBetter\Sentry\Model\Config\Source\LogLevel + 1 1 - + Magento\Config\Model\Config\Source\Yesno + 1 1 - + validate-not-negative-number validate-number + 1 1