From ab6ffba0b6cb05dc04f2b3e428ed118e6485764e Mon Sep 17 00:00:00 2001 From: lifegpc Date: Thu, 5 Oct 2023 00:43:26 +0000 Subject: [PATCH] Add new settings cors-allow-all --- src/opthelper.rs | 12 ++++++++++++ src/server/cors.rs | 2 +- src/settings_list.rs | 2 ++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/opthelper.rs b/src/opthelper.rs index 40d6c5e..f8cb790 100644 --- a/src/opthelper.rs +++ b/src/opthelper.rs @@ -74,6 +74,18 @@ impl OptHelper { self._cors_entries.get_ref().clone() } + #[cfg(feature = "server")] + pub fn cors_allow_all(&self) -> bool { + if self.settings.get_ref().have_bool("cors-allow-all") { + return self + .settings + .get_ref() + .get_bool("cors-allow-all") + .unwrap_or(false); + } + false + } + #[cfg(feature = "db")] /// Return the config of the database pub fn db(&self) -> PixivDownloaderDbConfig { diff --git a/src/server/cors.rs b/src/server/cors.rs index ccd878a..40f10ef 100644 --- a/src/server/cors.rs +++ b/src/server/cors.rs @@ -417,7 +417,7 @@ impl Default for CorsContext { fn default() -> Self { let helper = get_helper(); Self { - allow_all: false, + allow_all: helper.cors_allow_all(), entries: helper.cors_entries(), hosts: Vec::new(), } diff --git a/src/settings_list.rs b/src/settings_list.rs index 1ecb955..7feec4f 100644 --- a/src/settings_list.rs +++ b/src/settings_list.rs @@ -62,6 +62,8 @@ pub fn get_settings_list() -> Vec { #[cfg(feature = "ugoira")] SettingDes::new("ugoira-max-fps", gettext("The max fps when converting ugoira(GIF) to video."), JsonValueType::Number, Some(check_ugoira_max_fps)).unwrap(), SettingDes::new("fanbox-page-number", gettext("Use page number for pictures' file name in fanbox."), JsonValueType::Boolean, None).unwrap(), + #[cfg(feature = "server")] + SettingDes::new("cors-allow-all", gettext("Whether to allow all domains to send CORS requests."), JsonValueType::Boolean, None).unwrap(), ] }