From d0836b43135f6fd86043e40680bc2e893256f806 Mon Sep 17 00:00:00 2001 From: jo Date: Fri, 6 Aug 2021 12:23:30 +0200 Subject: [PATCH] Guess yes/no values in php config manager --- airtime_mvc/application/configs/conf.php | 13 +++++++++++- .../tests/application/configs/ConfigTest.php | 21 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 airtime_mvc/tests/application/configs/ConfigTest.php diff --git a/airtime_mvc/application/configs/conf.php b/airtime_mvc/application/configs/conf.php index ebfa59275..ea42e33f5 100644 --- a/airtime_mvc/application/configs/conf.php +++ b/airtime_mvc/application/configs/conf.php @@ -31,7 +31,7 @@ class Config { $CC_CONFIG['basePort'] = $values['general']['base_port']; $CC_CONFIG['stationId'] = $values['general']['station_id']; $CC_CONFIG['phpDir'] = $values['general']['airtime_dir']; - $CC_CONFIG['forceSSL'] = isset($values['general']['force_ssl']) ? $values['general']['force_ssl'] : FALSE; + $CC_CONFIG['forceSSL'] = isset($values['general']['force_ssl']) ? Config::isYesValue($values['general']['force_ssl']) : FALSE; $CC_CONFIG['protocol'] = isset($values['general']['protocol']) ? $values['general']['protocol'] : ''; if (isset($values['general']['dev_env'])) { $CC_CONFIG['dev_env'] = $values['general']['dev_env']; @@ -108,4 +108,15 @@ class Config { } return self::$CC_CONFIG; } + + /** + * Check if the string is one of 'yes' or 'true' (case insensitive). + */ + public static function isYesValue($value) + { + if (is_bool($value)) return $value; + if (!is_string($value)) return false; + + return in_array(strtolower($value), ['yes', 'true']); + } } diff --git a/airtime_mvc/tests/application/configs/ConfigTest.php b/airtime_mvc/tests/application/configs/ConfigTest.php new file mode 100644 index 000000000..d72aab65d --- /dev/null +++ b/airtime_mvc/tests/application/configs/ConfigTest.php @@ -0,0 +1,21 @@ +assertEquals(Config::isYesValue($value), true); + } + + foreach (["no", "No", "False", "false", false] as $value) { + $this->assertEquals(Config::isYesValue($value), false); + } + + foreach (["", "anything", "0", 0, "1", 1, null] as $value) { + $this->assertEquals(Config::isYesValue($value), false); + } + } +}