From 6a52d2a96844d0e53043ceaf14fe05a3a507c52f Mon Sep 17 00:00:00 2001
From: Vito0912 <86927734+Vito0912@users.noreply.github.com>
Date: Sun, 3 Aug 2025 13:52:58 +0200
Subject: [PATCH 1/7] CORS
---
client/pages/config/index.vue | 25 +++++++++++++++++++++++
server/Server.js | 4 ++--
server/objects/settings/ServerSettings.js | 3 +++
3 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/client/pages/config/index.vue b/client/pages/config/index.vue
index 7083c789..0a885854 100644
--- a/client/pages/config/index.vue
+++ b/client/pages/config/index.vue
@@ -144,6 +144,10 @@
+
+
+
+
@@ -338,7 +338,7 @@ export default {
})
if (containsInvalid) {
- this.$toast.error('Invalid CORS origin')
+ this.$toast.error(this.$strings.ToastInvalidUrls)
this.newServerSettings.allowedOrigins = val.map((origin) => origin.trim().toLowerCase())
return
}
diff --git a/client/strings/en-us.json b/client/strings/en-us.json
index f31a8a1d..d5e57847 100644
--- a/client/strings/en-us.json
+++ b/client/strings/en-us.json
@@ -293,6 +293,7 @@
"LabelContinueListening": "Continue Listening",
"LabelContinueReading": "Continue Reading",
"LabelContinueSeries": "Continue Series",
+ "LabelCorsAllowed": "Allowed CORS",
"LabelCover": "Cover",
"LabelCoverImageURL": "Cover Image URL",
"LabelCoverProvider": "Cover Provider",
@@ -1034,6 +1035,7 @@
"ToastInvalidImageUrl": "Invalid image URL",
"ToastInvalidMaxEpisodesToDownload": "Invalid max episodes to download",
"ToastInvalidUrl": "Invalid URL",
+ "ToastInvalidUrls": "One or more URLs are invalid",
"ToastItemCoverUpdateSuccess": "Item cover updated",
"ToastItemDeletedFailed": "Failed to delete item",
"ToastItemDeletedSuccess": "Deleted item",
From e408070b19c0f6aacb436cd639e76f46603a6e0e Mon Sep 17 00:00:00 2001
From: Vito0912 <86927734+Vito0912@users.noreply.github.com>
Date: Sun, 3 Aug 2025 14:02:33 +0200
Subject: [PATCH 3/7] better heading
---
client/strings/en-us.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/client/strings/en-us.json b/client/strings/en-us.json
index d5e57847..9b97d727 100644
--- a/client/strings/en-us.json
+++ b/client/strings/en-us.json
@@ -293,7 +293,7 @@
"LabelContinueListening": "Continue Listening",
"LabelContinueReading": "Continue Reading",
"LabelContinueSeries": "Continue Series",
- "LabelCorsAllowed": "Allowed CORS",
+ "LabelCorsAllowed": "Allowed CORS Origins",
"LabelCover": "Cover",
"LabelCoverImageURL": "Cover Image URL",
"LabelCoverProvider": "Cover Provider",
From 1097de6f1fdfaa78c8e9105c1cb7efd1e352a2e9 Mon Sep 17 00:00:00 2001
From: Vito0912 <86927734+Vito0912@users.noreply.github.com>
Date: Mon, 4 Aug 2025 19:17:46 +0200
Subject: [PATCH 4/7] now updates the input field
---
client/pages/config/index.vue | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/client/pages/config/index.vue b/client/pages/config/index.vue
index fdc811c1..8796d52a 100644
--- a/client/pages/config/index.vue
+++ b/client/pages/config/index.vue
@@ -328,24 +328,25 @@ export default {
this.updateSettingsKey('language', val)
},
updateCorsOrigins(val) {
- const containsInvalid = val.some((origin) => {
+ const validOrigins = []
+ const invalidOrigins = []
+
+ val.forEach((origin) => {
+ const trimmedOrigin = origin.trim().toLowerCase()
try {
- new URL(origin)
- return false
+ new URL(trimmedOrigin)
+ validOrigins.push(trimmedOrigin)
} catch {
- return true
+ invalidOrigins.push(trimmedOrigin)
}
})
- if (containsInvalid) {
+ if (invalidOrigins.length > 0) {
this.$toast.error(this.$strings.ToastInvalidUrls)
- this.newServerSettings.allowedOrigins = val.map((origin) => origin.trim().toLowerCase())
- return
}
- this.newServerSettings.allowedOrigins = val.map((origin) => origin.trim().toLowerCase())
-
- this.updateSettingsKey('allowedOrigins', this.newServerSettings.allowedOrigins)
+ this.newServerSettings.allowedOrigins = validOrigins
+ this.updateSettingsKey('allowedOrigins', validOrigins)
},
updateSettingsKey(key, val) {
if (key === 'scannerDisableWatcher') {
From df3878d4cad448d0f450845059724bec200bdb31 Mon Sep 17 00:00:00 2001
From: advplyr
Date: Mon, 4 Aug 2025 17:54:29 -0500
Subject: [PATCH 5/7] Add Security section to settings with allowed cors origin
setting, increase width of setting inputs
---
client/pages/config/index.vue | 12 ++++++++----
client/strings/en-us.json | 1 +
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/client/pages/config/index.vue b/client/pages/config/index.vue
index 8796d52a..1fd2cbcc 100644
--- a/client/pages/config/index.vue
+++ b/client/pages/config/index.vue
@@ -131,21 +131,25 @@
-
updateSettingsKey('dateFormat', val)" />
+ updateSettingsKey('dateFormat', val)" />
{{ $strings.LabelExample }}: {{ dateExample }}
-
updateSettingsKey('timeFormat', val)" />
+ updateSettingsKey('timeFormat', val)" />
{{ $strings.LabelExample }}: {{ timeExample }}
-
+
+
+
+
+
{{ $strings.HeaderSettingsSecurity }}
-
+
diff --git a/client/strings/en-us.json b/client/strings/en-us.json
index 9b97d727..87d4887d 100644
--- a/client/strings/en-us.json
+++ b/client/strings/en-us.json
@@ -198,6 +198,7 @@
"HeaderSettingsDisplay": "Display",
"HeaderSettingsExperimental": "Experimental Features",
"HeaderSettingsGeneral": "General",
+ "HeaderSettingsSecurity": "Security",
"HeaderSettingsScanner": "Scanner",
"HeaderSettingsWebClient": "Web Client",
"HeaderSleepTimer": "Sleep Timer",
From 1908ec3df5a18d4fcfb28a171e29ec69c2eaf532 Mon Sep 17 00:00:00 2001
From: advplyr
Date: Mon, 4 Aug 2025 17:54:59 -0500
Subject: [PATCH 6/7] Remove commented out experimental features setting
---
client/pages/config/index.vue | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/client/pages/config/index.vue b/client/pages/config/index.vue
index 1fd2cbcc..3d030bb3 100644
--- a/client/pages/config/index.vue
+++ b/client/pages/config/index.vue
@@ -151,23 +151,6 @@
-
-
-
From 08c9e8d47d76c29b2ad78731ffb09061a6d131ee Mon Sep 17 00:00:00 2001
From: advplyr
Date: Mon, 4 Aug 2025 17:56:56 -0500
Subject: [PATCH 7/7] Fix i18n string order
---
client/strings/en-us.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/client/strings/en-us.json b/client/strings/en-us.json
index 87d4887d..70ac874d 100644
--- a/client/strings/en-us.json
+++ b/client/strings/en-us.json
@@ -198,8 +198,8 @@
"HeaderSettingsDisplay": "Display",
"HeaderSettingsExperimental": "Experimental Features",
"HeaderSettingsGeneral": "General",
- "HeaderSettingsSecurity": "Security",
"HeaderSettingsScanner": "Scanner",
+ "HeaderSettingsSecurity": "Security",
"HeaderSettingsWebClient": "Web Client",
"HeaderSleepTimer": "Sleep Timer",
"HeaderStatsLargestItems": "Largest Items",