From f483852ccd82e7058b13fbabcd802583b0f5bb6d Mon Sep 17 00:00:00 2001 From: jo Date: Thu, 11 Aug 2022 13:01:36 +0200 Subject: [PATCH] refactor(legacy): clean config - sort imports - improve indentation - rename internal_values to legacy_values - reorder functions remove unused isYesValue --- legacy/application/configs/conf.php | 304 ++++++++---------- .../tests/application/configs/ConfigTest.php | 23 -- 2 files changed, 135 insertions(+), 192 deletions(-) delete mode 100644 legacy/tests/application/configs/ConfigTest.php diff --git a/legacy/application/configs/conf.php b/legacy/application/configs/conf.php index 1d0990007..2e2b4d172 100644 --- a/legacy/application/configs/conf.php +++ b/legacy/application/configs/conf.php @@ -11,8 +11,8 @@ use League\Uri\Contracts\UriException; use League\Uri\Uri; use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\ConfigurationInterface; -use Symfony\Component\Config\Definition\Processor; use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; +use Symfony\Component\Config\Definition\Processor; class Schema implements ConfigurationInterface { @@ -27,84 +27,68 @@ class Schema implements ConfigurationInterface ->children() // General schema - ->arrayNode('general') - /**/->addDefaultsIfNotSet() - /**/->children() - /* */->scalarNode('public_url')->cannotBeEmpty()->end() - /* */->scalarNode('api_key')->cannotBeEmpty()->end() - /* */->arrayNode('allowed_cors_origins')->scalarPrototype()->defaultValue([])->end()->end() - /* */->scalarNode('dev_env')->defaultValue('production')->end() - /* */->scalarNode('auth')->defaultValue('local')->end() - /* */->integerNode('cache_ahead_hours')->defaultValue(1)->end() - /**/->end() - ->end() + ->arrayNode('general')->addDefaultsIfNotSet()->children() + /**/->scalarNode('public_url')->cannotBeEmpty()->end() + /**/->scalarNode('api_key')->cannotBeEmpty()->end() + /**/->arrayNode('allowed_cors_origins')->scalarPrototype()->defaultValue([])->end()->end() + /**/->scalarNode('dev_env')->defaultValue('production')->end() + /**/->scalarNode('auth')->defaultValue('local')->end() + /**/->integerNode('cache_ahead_hours')->defaultValue(1)->end() + ->end()->end() // Database schema - ->arrayNode('database') - /**/->addDefaultsIfNotSet() - /**/->children() - /* */->scalarNode('host')->defaultValue('localhost')->end() - /* */->integerNode('port')->defaultValue(5432)->end() - /* */->scalarNode('name')->defaultValue('libretime')->end() - /* */->scalarNode('user')->defaultValue('libretime')->end() - /* */->scalarNode('password')->defaultValue('libretime')->end() - /**/->end() - ->end() + ->arrayNode('database')->addDefaultsIfNotSet()->children() + /**/->scalarNode('host')->defaultValue('localhost')->end() + /**/->integerNode('port')->defaultValue(5432)->end() + /**/->scalarNode('name')->defaultValue('libretime')->end() + /**/->scalarNode('user')->defaultValue('libretime')->end() + /**/->scalarNode('password')->defaultValue('libretime')->end() + ->end()->end() // Rabbitmq schema - ->arrayNode('rabbitmq') - /**/->addDefaultsIfNotSet() - /**/->children() - /* */->scalarNode('host')->defaultValue('localhost')->end() - /* */->integerNode('port')->defaultValue(5672)->end() - /* */->scalarNode('vhost')->defaultValue('/libretime')->end() - /* */->scalarNode('user')->defaultValue('libretime')->end() - /* */->scalarNode('password')->defaultValue('libretime')->end() - /**/->end() - ->end() + ->arrayNode('rabbitmq')->addDefaultsIfNotSet()->children() + /**/->scalarNode('host')->defaultValue('localhost')->end() + /**/->integerNode('port')->defaultValue(5672)->end() + /**/->scalarNode('vhost')->defaultValue('/libretime')->end() + /**/->scalarNode('user')->defaultValue('libretime')->end() + /**/->scalarNode('password')->defaultValue('libretime')->end() + ->end()->end() // Storage schema - ->arrayNode('storage') - /**/->addDefaultsIfNotSet() - /**/->children() - /* */->scalarNode('path')->defaultValue('/srv/libretime') - /* */->validate()->ifString()->then($trim_trailing_slash)->end() - /* */->end() + ->arrayNode('storage')->addDefaultsIfNotSet()->children() + /**/->scalarNode('path')->defaultValue('/srv/libretime') + /* */->validate()->ifString()->then($trim_trailing_slash)->end() /**/->end() - ->end() + ->end()->end() // Facebook schema - ->arrayNode('facebook') - /**/->setDeprecated("legacy", "3.0.0-alpha.11") - /**/->children() - /* */->scalarNode('facebook_app_id')->end() - /* */->scalarNode('facebook_app_url')->end() - /* */->scalarNode('facebook_app_api_key')->end() - /**/->end() - ->end() + ->arrayNode('facebook')->setDeprecated("legacy", "3.0.0-alpha.11")->children() + /**/->scalarNode('facebook_app_id')->end() + /**/->scalarNode('facebook_app_url')->end() + /**/->scalarNode('facebook_app_api_key')->end() + ->end()->end() // LDAP schema - ->arrayNode('ldap') - /**/->children() - /* */->scalarNode('hostname')->end() - /* */->scalarNode('binddn')->end() - /* */->scalarNode('password')->end() - /* */->scalarNode('account_domain')->end() - /* */->scalarNode('basedn')->end() - /* */->scalarNode('groupmap_guest')->end() - /* */->scalarNode('groupmap_host')->end() - /* */->scalarNode('groupmap_program_manager')->end() - /* */->scalarNode('groupmap_admin')->end() - /* */->scalarNode('groupmap_superadmin')->end() - /* */->scalarNode('filter_field')->end() - /**/->end() - ->end() + ->arrayNode('ldap')->children() + /**/->scalarNode('hostname')->end() + /**/->scalarNode('binddn')->end() + /**/->scalarNode('password')->end() + /**/->scalarNode('account_domain')->end() + /**/->scalarNode('basedn')->end() + /**/->scalarNode('groupmap_guest')->end() + /**/->scalarNode('groupmap_host')->end() + /**/->scalarNode('groupmap_program_manager')->end() + /**/->scalarNode('groupmap_admin')->end() + /**/->scalarNode('groupmap_superadmin')->end() + /**/->scalarNode('filter_field')->end() + ->end()->end() // Playout schema ->arrayNode('playout') /**/->ignoreExtraKeys() ->end() + // END Schema ->end(); return $treeBuilder; @@ -113,7 +97,7 @@ class Schema implements ConfigurationInterface class Config { - private static $internal_values; + private static $legacy_values; private static $values; private static function load() @@ -150,112 +134,7 @@ class Config } self::$values = $values; - self::fillInternalValues($values); - } - - private static function fillInternalValues($values) - { - $internal_values = []; - // General - // ////////////////////////////////////////////////////////////////////////////// - $internal_values['apiKey'] = [$values['general']['api_key']]; - $internal_values['public_url_raw'] = $values['general']['public_url_raw']; - $internal_values['public_url'] = $values['general']['public_url']; - - // Allowed hosts - $internal_values['allowedCorsOrigins'] = $values['general']['allowed_cors_origins']; - - $internal_values['dev_env'] = $values['general']['dev_env']; - $internal_values['auth'] = $values['general']['auth']; - $internal_values['cache_ahead_hours'] = $values['general']['cache_ahead_hours']; - - // SAAS remaining fields - $internal_values['stationId'] = ''; - $internal_values['phpDir'] = ''; - $internal_values['staticBaseDir'] = '/'; - - // Database - // ////////////////////////////////////////////////////////////////////////////// - $internal_values['dsn']['phptype'] = 'pgsql'; - $internal_values['dsn']['host'] = $values['database']['host']; - $internal_values['dsn']['port'] = $values['database']['port']; - $internal_values['dsn']['database'] = $values['database']['name']; - $internal_values['dsn']['username'] = $values['database']['user']; - $internal_values['dsn']['password'] = $values['database']['password']; - - // RabbitMQ - // ////////////////////////////////////////////////////////////////////////////// - $internal_values['rabbitmq']['host'] = $values['rabbitmq']['host']; - $internal_values['rabbitmq']['port'] = $values['rabbitmq']['port']; - $internal_values['rabbitmq']['vhost'] = $values['rabbitmq']['vhost']; - $internal_values['rabbitmq']['user'] = $values['rabbitmq']['user']; - $internal_values['rabbitmq']['password'] = $values['rabbitmq']['password']; - - // Storage - // ////////////////////////////////////////////////////////////////////////////// - $internal_values['storagePath'] = $values['storage']['path']; - - // Facebook (DEPRECATED) - // ////////////////////////////////////////////////////////////////////////////// - if (isset($values['facebook']['facebook_app_id'])) { - $internal_values['facebook-app-id'] = $values['facebook']['facebook_app_id']; - $internal_values['facebook-app-url'] = $values['facebook']['facebook_app_url']; - $internal_values['facebook-app-api-key'] = $values['facebook']['facebook_app_api_key']; - } - - // LDAP - // ////////////////////////////////////////////////////////////////////////////// - if (array_key_exists('ldap', $values)) { - $internal_values['ldap_hostname'] = $values['ldap']['hostname']; - $internal_values['ldap_binddn'] = $values['ldap']['binddn']; - $internal_values['ldap_password'] = $values['ldap']['password']; - $internal_values['ldap_account_domain'] = $values['ldap']['account_domain']; - $internal_values['ldap_basedn'] = $values['ldap']['basedn']; - $internal_values['ldap_groupmap_guest'] = $values['ldap']['groupmap_guest']; - $internal_values['ldap_groupmap_host'] = $values['ldap']['groupmap_host']; - $internal_values['ldap_groupmap_program_manager'] = $values['ldap']['groupmap_program_manager']; - $internal_values['ldap_groupmap_admin'] = $values['ldap']['groupmap_admin']; - $internal_values['ldap_groupmap_superadmin'] = $values['ldap']['groupmap_superadmin']; - $internal_values['ldap_filter_field'] = $values['ldap']['filter_field']; - } - - self::$internal_values = $internal_values; - } - - public static function setAirtimeVersion() - { - $version = @file_get_contents(dirname(ROOT_PATH) . '/VERSION'); - if (!$version) { - // fallback to constant from constants.php if no other info is available - $version = LIBRETIME_MAJOR_VERSION; - } - self::$internal_values['airtime_version'] = trim($version); - } - - public static function getConfig() - { - if (is_null(self::$internal_values)) { - self::load(); - } - - return self::$internal_values; - } - - /** - * Check if the string is one of 'yes' or 'true' (case insensitive). - * - * @param mixed $value - */ - public static function isYesValue($value) - { - if (is_bool($value)) { - return $value; - } - if (!is_string($value)) { - return false; - } - - return in_array(strtolower($value), ['yes', 'true']); + self::fillLegacyValues($values); } /** @@ -277,6 +156,93 @@ class Config } } + /** + * Legacy config + */ + + private static function fillLegacyValues($values) + { + $legacy_values = []; + // General + $legacy_values['apiKey'] = [$values['general']['api_key']]; + $legacy_values['public_url_raw'] = $values['general']['public_url_raw']; + $legacy_values['public_url'] = $values['general']['public_url']; + + // Allowed hosts + $legacy_values['allowedCorsOrigins'] = $values['general']['allowed_cors_origins']; + + $legacy_values['dev_env'] = $values['general']['dev_env']; + $legacy_values['auth'] = $values['general']['auth']; + $legacy_values['cache_ahead_hours'] = $values['general']['cache_ahead_hours']; + + // SAAS remaining fields + $legacy_values['stationId'] = ''; + $legacy_values['phpDir'] = ''; + $legacy_values['staticBaseDir'] = '/'; + + // Database + $legacy_values['dsn']['phptype'] = 'pgsql'; + $legacy_values['dsn']['host'] = $values['database']['host']; + $legacy_values['dsn']['port'] = $values['database']['port']; + $legacy_values['dsn']['database'] = $values['database']['name']; + $legacy_values['dsn']['username'] = $values['database']['user']; + $legacy_values['dsn']['password'] = $values['database']['password']; + + // RabbitMQ + $legacy_values['rabbitmq']['host'] = $values['rabbitmq']['host']; + $legacy_values['rabbitmq']['port'] = $values['rabbitmq']['port']; + $legacy_values['rabbitmq']['vhost'] = $values['rabbitmq']['vhost']; + $legacy_values['rabbitmq']['user'] = $values['rabbitmq']['user']; + $legacy_values['rabbitmq']['password'] = $values['rabbitmq']['password']; + + // Storage + $legacy_values['storagePath'] = $values['storage']['path']; + + // Facebook (DEPRECATED) + if (isset($values['facebook']['facebook_app_id'])) { + $legacy_values['facebook-app-id'] = $values['facebook']['facebook_app_id']; + $legacy_values['facebook-app-url'] = $values['facebook']['facebook_app_url']; + $legacy_values['facebook-app-api-key'] = $values['facebook']['facebook_app_api_key']; + } + + // LDAP + if (array_key_exists('ldap', $values)) { + $legacy_values['ldap_hostname'] = $values['ldap']['hostname']; + $legacy_values['ldap_binddn'] = $values['ldap']['binddn']; + $legacy_values['ldap_password'] = $values['ldap']['password']; + $legacy_values['ldap_account_domain'] = $values['ldap']['account_domain']; + $legacy_values['ldap_basedn'] = $values['ldap']['basedn']; + $legacy_values['ldap_groupmap_guest'] = $values['ldap']['groupmap_guest']; + $legacy_values['ldap_groupmap_host'] = $values['ldap']['groupmap_host']; + $legacy_values['ldap_groupmap_program_manager'] = $values['ldap']['groupmap_program_manager']; + $legacy_values['ldap_groupmap_admin'] = $values['ldap']['groupmap_admin']; + $legacy_values['ldap_groupmap_superadmin'] = $values['ldap']['groupmap_superadmin']; + $legacy_values['ldap_filter_field'] = $values['ldap']['filter_field']; + } + + self::$legacy_values = $legacy_values; + } + + public static function setAirtimeVersion() + { + $version = @file_get_contents(dirname(ROOT_PATH) . '/VERSION'); + if (!$version) { + // fallback to constant from constants.php if no other info is available + $version = LIBRETIME_MAJOR_VERSION; + } + self::$legacy_values['airtime_version'] = trim($version); + } + + public static function getConfig() + { + if (is_null(self::$legacy_values)) { + self::load(); + } + + return self::$legacy_values; + } + + public static function getStoragePath() { return self::getConfig()['storagePath']; diff --git a/legacy/tests/application/configs/ConfigTest.php b/legacy/tests/application/configs/ConfigTest.php deleted file mode 100644 index 57a97aacb..000000000 --- a/legacy/tests/application/configs/ConfigTest.php +++ /dev/null @@ -1,23 +0,0 @@ -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); - } - } -}