diff --git a/src/opnsense/mvc/app/config/AppConfig.php b/src/opnsense/mvc/app/config/AppConfig.php index c56699d54..fc3e4a7f7 100644 --- a/src/opnsense/mvc/app/config/AppConfig.php +++ b/src/opnsense/mvc/app/config/AppConfig.php @@ -73,4 +73,25 @@ class AppConfig // simple conversion from array to StdClass container, current representation of self::$data. self::$obj = json_decode(json_encode(self::$data)); } + + /** + * update a property inside the container + * @param string $path in dot notation a.b.c + * @param mixed $value + * @return bool true when found and updated + */ + public function update($path, $value) + { + $tmp = &self::$data; + foreach (explode('.', $path) as $key) { + if (isset($tmp[$key])) { + $tmp = &$tmp[$key]; + } else { + return false; + } + } + $tmp = $value; + self::$obj = json_decode(json_encode(self::$data)); + return true; + } } \ No newline at end of file diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AuthGroupFieldTest.php b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AuthGroupFieldTest.php index 255e68c7d..993ee1677 100644 --- a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AuthGroupFieldTest.php +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AuthGroupFieldTest.php @@ -35,7 +35,7 @@ require_once 'Field_Framework_TestCase.php'; // @CodingStandardsIgnoreEnd use OPNsense\Base\FieldTypes\AuthGroupField; -use Phalcon\Di\FactoryDefault; +use OPNsense\Core\AppConfig; use OPNsense\Core\Config; class AuthGroupFieldTest extends Field_Framework_TestCase @@ -47,7 +47,7 @@ class AuthGroupFieldTest extends Field_Framework_TestCase { $this->assertInstanceOf('\OPNsense\Base\FieldTypes\AuthGroupField', new AuthGroupField()); // switch config to test set for this type - FactoryDefault::getDefault()->get('config')->globals->config_path = __DIR__ . '/AuthGroupFieldTest/'; + (new AppConfig())->update('globals.config_path', __DIR__ . '/AuthGroupFieldTest/'); Config::getInstance()->forceReload(); } diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AuthenticationServerFieldTest.php b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AuthenticationServerFieldTest.php index e54b89904..581f4e20d 100644 --- a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AuthenticationServerFieldTest.php +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AuthenticationServerFieldTest.php @@ -35,7 +35,7 @@ require_once 'Field_Framework_TestCase.php'; // @CodingStandardsIgnoreEnd use OPNsense\Base\FieldTypes\AuthenticationServerField; -use Phalcon\Di\FactoryDefault; +use OPNsense\Core\AppConfig; use OPNsense\Core\Config; class AuthenticationServerFieldTest extends Field_Framework_TestCase @@ -47,7 +47,7 @@ class AuthenticationServerFieldTest extends Field_Framework_TestCase { $this->assertInstanceOf('\OPNsense\Base\FieldTypes\AuthenticationServerField', new AuthenticationServerField()); // switch config to test set for this type - FactoryDefault::getDefault()->get('config')->globals->config_path = __DIR__ . '/AuthenticationServerFieldTest/'; + (new AppConfig())->update('globals.config_path', __DIR__ . '/AuthenticationServerFieldTest/'); Config::getInstance()->forceReload(); } diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/CertificateFieldTest.php b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/CertificateFieldTest.php index 8e75cb9f2..0f1c6bbc7 100644 --- a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/CertificateFieldTest.php +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/CertificateFieldTest.php @@ -35,7 +35,7 @@ require_once 'Field_Framework_TestCase.php'; // @CodingStandardsIgnoreEnd use OPNsense\Base\FieldTypes\CertificateField; -use Phalcon\Di\FactoryDefault; +use OPNsense\Core\AppConfig; use OPNsense\Core\Config; class CertificateFieldTest extends Field_Framework_TestCase @@ -47,7 +47,7 @@ class CertificateFieldTest extends Field_Framework_TestCase { $this->assertInstanceOf('\OPNsense\Base\FieldTypes\CertificateField', new CertificateField()); // switch config to test set for this type - FactoryDefault::getDefault()->get('config')->globals->config_path = __DIR__ . '/CertificateFieldTest/'; + (new AppConfig())->update('globals.config_path', __DIR__ . '/CertificateFieldTest/'); Config::getInstance()->forceReload(); } diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/InterfaceFieldTest.php b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/InterfaceFieldTest.php index 986eab321..5cd14cec0 100644 --- a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/InterfaceFieldTest.php +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/InterfaceFieldTest.php @@ -35,7 +35,7 @@ require_once 'Field_Framework_TestCase.php'; // @CodingStandardsIgnoreEnd use OPNsense\Base\FieldTypes\InterfaceField; -use Phalcon\Di\FactoryDefault; +use OPNsense\Core\AppConfig; use OPNsense\Core\Config; class InterfaceFieldTest extends Field_Framework_TestCase @@ -47,7 +47,7 @@ class InterfaceFieldTest extends Field_Framework_TestCase { $this->assertInstanceOf('\OPNsense\Base\FieldTypes\InterfaceField', new InterfaceField()); // switch config to test set for this type - FactoryDefault::getDefault()->get('config')->globals->config_path = __DIR__ . '/InterfaceFieldTest/'; + (new AppConfig())->update('globals.config_path', __DIR__ . '/InterfaceFieldTest/'); Config::getInstance()->forceReload(); } diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest.php b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest.php index 4db7b8d82..814dde21e 100644 --- a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest.php +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/ModelRelationFieldTest.php @@ -34,14 +34,14 @@ require_once __DIR__ . '/../BaseModel/TestModel.php'; // @CodingStandardsIgnoreEnd use OPNsense\Base\FieldTypes\ModelRelationField; -use Phalcon\Di\FactoryDefault; +use OPNsense\Core\AppConfig; use OPNsense\Core\Config; class ModelRelationFieldTest extends Field_Framework_TestCase { protected function setUp(): void { - FactoryDefault::getDefault()->get('config')->globals->config_path = __DIR__ . '/ModelRelationFieldTest/'; + (new AppConfig())->update('globals.config_path', __DIR__ . '/ModelRelationFieldTest/'); Config::getInstance()->forceReload(); } diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/NetworkAliasFieldTest.php b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/NetworkAliasFieldTest.php index bbdd449a2..2a6e9cc21 100644 --- a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/NetworkAliasFieldTest.php +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/NetworkAliasFieldTest.php @@ -35,7 +35,7 @@ require_once 'Field_Framework_TestCase.php'; // @CodingStandardsIgnoreEnd use OPNsense\Base\FieldTypes\NetworkAliasField; -use Phalcon\Di\FactoryDefault; +use OPNsense\Core\AppConfig; use OPNsense\Core\Config; class NetworkAliasFieldTest extends Field_Framework_TestCase @@ -47,7 +47,7 @@ class NetworkAliasFieldTest extends Field_Framework_TestCase { $this->assertInstanceOf('\OPNsense\Base\FieldTypes\NetworkAliasField', new NetworkAliasField()); // switch config to test set for this type - FactoryDefault::getDefault()->get('config')->globals->config_path = __DIR__ . '/NetworkAliasFieldTest/'; + (new AppConfig())->update('globals.config_path', __DIR__ . '/NetworkAliasFieldTest/'); Config::getInstance()->forceReload(); } diff --git a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/VirtualIPFieldTest.php b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/VirtualIPFieldTest.php index 918c3bfe5..503da29c5 100644 --- a/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/VirtualIPFieldTest.php +++ b/src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/VirtualIPFieldTest.php @@ -35,7 +35,7 @@ require_once 'Field_Framework_TestCase.php'; // @CodingStandardsIgnoreEnd use OPNsense\Base\FieldTypes\VirtualIPField; -use Phalcon\Di\FactoryDefault; +use OPNsense\Core\AppConfig; use OPNsense\Core\Config; class VirtualIPFieldTest extends Field_Framework_TestCase @@ -47,7 +47,7 @@ class VirtualIPFieldTest extends Field_Framework_TestCase { $this->assertInstanceOf('\OPNsense\Base\FieldTypes\VirtualIPField', new VirtualIPField()); // switch config to test set for this type - FactoryDefault::getDefault()->get('config')->globals->config_path = __DIR__ . '/VirtualIPFieldTest/'; + (new AppConfig())->update('globals.config_path', __DIR__ . '/VirtualIPFieldTest/'); Config::getInstance()->forceReload(); }