From 025cd555e9135490807f97d9d45f7cf23c3391f3 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Thu, 8 May 2025 08:13:08 +0200 Subject: [PATCH 1/2] fix: settings encryption --- src/helpers/settingsHelper.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/helpers/settingsHelper.ts b/src/helpers/settingsHelper.ts index 526e10a..73d94d6 100644 --- a/src/helpers/settingsHelper.ts +++ b/src/helpers/settingsHelper.ts @@ -57,7 +57,7 @@ export default abstract class SettingHelper { } let processedValue = rawValue; - if (typeof settingType.type === "string" && settingType.type.includes("/crypt")) { + if (typeof settingType.type === "string" && settingType.type.includes("/crypt") && processedValue != "") { processedValue = CodingHelper.decrypt(APPLICATION_SECRET, processedValue); } @@ -76,7 +76,7 @@ export default abstract class SettingHelper { * @param value The value to set */ public static async setSetting(key: K, value: SettingValueMapping[K]): Promise { - if (value === undefined || value === null) { + if (value === undefined || value === null || value == "") { if (key != "mail.password") this.resetSetting(key); return; } @@ -93,7 +93,7 @@ export default abstract class SettingHelper { newValue = CodingHelper.encrypt(APPLICATION_SECRET, stringValue); } - this.settings[key] = stringValue; + this.settings[key] = newValue; const [topic, settingKey] = key.split(".") as [SettingTopic, string]; await SettingCommandHandler.create({ From 0dbc726f64404bf6a1c0a22b0fc80dfff2f2ace8 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Thu, 8 May 2025 08:13:59 +0200 Subject: [PATCH 2/2] fix: push settings val to listener --- src/helpers/settingsHelper.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/helpers/settingsHelper.ts b/src/helpers/settingsHelper.ts index 73d94d6..aea7584 100644 --- a/src/helpers/settingsHelper.ts +++ b/src/helpers/settingsHelper.ts @@ -265,9 +265,7 @@ export default abstract class SettingHelper { * @param oldValue The old value */ private static notifyListeners(key: SettingString, newValue: any, oldValue: any): void { - if (!this.listeners.has(key)) return; - - const callbacks = this.listeners.get(key)!; + const callbacks = this.listeners.get(key) ?? []; for (const callback of callbacks) { try { callback(newValue, oldValue); @@ -276,7 +274,7 @@ export default abstract class SettingHelper { } } - const topicCallbacks = this.topicListeners.get(key.split(".")[0] as SettingTopic)!; + const topicCallbacks = this.topicListeners.get(key.split(".")[0] as SettingTopic) ?? []; for (const callback of topicCallbacks) { try { callback();