From cff98f2d23316114e76a7744ba710d314752f625 Mon Sep 17 00:00:00 2001 From: Jonas L Date: Tue, 11 Oct 2022 13:38:31 +0200 Subject: [PATCH] feat(legacy): remove db allowed_cors_origins preference (#2095) - Remove after deprecation in eb8e7b3415c77c9274e4465f68d19857be940c06 --- .../migrations/0043_remove_cors_preference.py | 26 +++++++++++++++++ .../legacy/migrations/__init__.py | 2 +- legacy/application/common/CORSHelper.php | 23 +-------------- .../controllers/PreferenceController.php | 1 - .../application/forms/GeneralPreferences.php | 7 ----- legacy/application/models/Preference.php | 28 ------------------- .../scripts/form/preferences_general.phtml | 1 - 7 files changed, 28 insertions(+), 60 deletions(-) create mode 100644 api/libretime_api/legacy/migrations/0043_remove_cors_preference.py diff --git a/api/libretime_api/legacy/migrations/0043_remove_cors_preference.py b/api/libretime_api/legacy/migrations/0043_remove_cors_preference.py new file mode 100644 index 000000000..39524f4dc --- /dev/null +++ b/api/libretime_api/legacy/migrations/0043_remove_cors_preference.py @@ -0,0 +1,26 @@ +# pylint: disable=invalid-name + +from django.db import migrations + +from ._migrations import legacy_migration_factory + +UP = """ +delete from cc_pref +where "keystr" = 'allowed_cors_urls'; +""" + +DOWN = """""" + + +class Migration(migrations.Migration): + dependencies = [ + ("legacy", "0042_remove_stream_preferences"), + ] + operations = [ + migrations.RunPython( + code=legacy_migration_factory( + target="43", + sql=UP, + ) + ) + ] diff --git a/api/libretime_api/legacy/migrations/__init__.py b/api/libretime_api/legacy/migrations/__init__.py index 746efda97..5307d7b21 100644 --- a/api/libretime_api/legacy/migrations/__init__.py +++ b/api/libretime_api/legacy/migrations/__init__.py @@ -1,2 +1,2 @@ # The schema version is defined using the migration file prefix number -LEGACY_SCHEMA_VERSION = "42" +LEGACY_SCHEMA_VERSION = "43" diff --git a/legacy/application/common/CORSHelper.php b/legacy/application/common/CORSHelper.php index b3c5ab2f6..2b7420df0 100644 --- a/legacy/application/common/CORSHelper.php +++ b/legacy/application/common/CORSHelper.php @@ -27,27 +27,6 @@ class CORSHelper */ public static function getAllowedOrigins($request) { - $config = Config::getConfig(); - - return array_merge( - $config['allowedCorsOrigins'], - self::getDatabaseAllowedOrigins() - ); - } - - /** - * Get database allowed origins. - * - * @return array - */ - private static function getDatabaseAllowedOrigins() - { - return array_map( - 'trim', - explode( - PHP_EOL, - Application_Model_Preference::GetAllowedCorsUrls() - ) - ); + return Config::get('general.allowed_cors_origins'); } } diff --git a/legacy/application/controllers/PreferenceController.php b/legacy/application/controllers/PreferenceController.php index 93a9c5b52..effb358f1 100644 --- a/legacy/application/controllers/PreferenceController.php +++ b/legacy/application/controllers/PreferenceController.php @@ -47,7 +47,6 @@ class PreferenceController extends Zend_Controller_Action Application_Model_Preference::SetIntroPlaylist($values['introPlaylistSelect']); Application_Model_Preference::SetOutroPlaylist($values['outroPlaylistSelect']); Application_Model_Preference::SetAllow3rdPartyApi($values['thirdPartyApi']); - Application_Model_Preference::SetAllowedCorsUrls($values['allowedCorsUrls']); Application_Model_Preference::SetDefaultLocale($values['locale']); Application_Model_Preference::SetWeekStartDay($values['weekStartDay']); Application_Model_Preference::setRadioPageDisplayLoginButton($values['radioPageLoginButton']); diff --git a/legacy/application/forms/GeneralPreferences.php b/legacy/application/forms/GeneralPreferences.php index 5027aae47..e41eee368 100644 --- a/legacy/application/forms/GeneralPreferences.php +++ b/legacy/application/forms/GeneralPreferences.php @@ -171,13 +171,6 @@ class Application_Form_GeneralPreferences extends Zend_Form_SubForm ]); $this->addElement($third_party_api); - $allowedCorsUrlsValue = Application_Model_Preference::GetAllowedCorsUrls(); - $allowedCorsUrls = new Zend_Form_Element_Textarea('allowedCorsUrls'); - $allowedCorsUrls->setLabel(_('Allowed CORS URLs (DEPRECATED)')); - $allowedCorsUrls->setDescription(_('Remote URLs that are allowed to access this LibreTime instance in a browser. One URL per line. (DEPRECATED: Allowed CORS origins configuration moved to the configuration file.)')); - $allowedCorsUrls->setValue($allowedCorsUrlsValue); - $this->addElement($allowedCorsUrls); - $locale = new Zend_Form_Element_Select('locale'); $locale->setLabel(_('Default Language')); $locale->setMultiOptions(Application_Model_Locale::getLocales()); diff --git a/legacy/application/models/Preference.php b/legacy/application/models/Preference.php index 92837c2f9..bb4ad7537 100644 --- a/legacy/application/models/Preference.php +++ b/legacy/application/models/Preference.php @@ -1514,34 +1514,6 @@ class Application_Model_Preference self::setValue('station_podcast_privacy', $value); } - /** - * Getter for CORS URLs. - * - * @return string - */ - public static function GetAllowedCorsUrls() - { - return self::getValue('allowed_cors_urls'); - } - - /** - * Setter for CORS URLs. - * - * @param string $value - */ - public static function SetAllowedCorsUrls($value) - { - // Trim and strip trailing slash for each entry - $value = implode(PHP_EOL, array_map( - function ($v) { - return rtrim(trim($v), '/'); - }, - explode(PHP_EOL, $value) - )); - - self::setValue('allowed_cors_urls', $value); - } - /** * Getter for feature preview mode. * diff --git a/legacy/application/views/scripts/form/preferences_general.phtml b/legacy/application/views/scripts/form/preferences_general.phtml index 66b06cac8..85b5bb2bc 100644 --- a/legacy/application/views/scripts/form/preferences_general.phtml +++ b/legacy/application/views/scripts/form/preferences_general.phtml @@ -44,7 +44,6 @@ element->getElement('featurePreviewMode')->render() ?> element->getElement('thirdPartyApi')->render() ?> - element->getElement('allowedCorsUrls')->render() ?> element->getElement('radioPageLoginButton')->renderViewHelper() ?> element->getElement('radioPageLoginButton')->renderLabel() ?>