From 220fffc9b1f0384e4b25f890eddda449d262c769 Mon Sep 17 00:00:00 2001 From: nfebe Date: Mon, 11 Nov 2024 15:24:55 +0100 Subject: [PATCH 1/2] fix(settings): Prevent undefined related errors for encryption `Object.entries([])` would return an empty array, that leads to the `find` return undefined. `encryptionReady` and `encryptionEnabled` also returns undefined when no encryption module is available or functional (I guess). Signed-off-by: nfebe --- apps/settings/src/components/Encryption.vue | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/settings/src/components/Encryption.vue b/apps/settings/src/components/Encryption.vue index 4d80f9b98338e..060be3fc5eb66 100644 --- a/apps/settings/src/components/Encryption.vue +++ b/apps/settings/src/components/Encryption.vue @@ -89,15 +89,24 @@ export default { }, data() { const encryptionModules = loadState('settings', 'encryption-modules') + let defaultCheckedModule = '' + if (encryptionModules instanceof Array && encryptionModules.length > 0) { + const defaultModule = Object.entries(encryptionModules).find((module) => module[1].default) + if (defaultModule) { + defaultCheckedModule = foundModule[0] + } + } else { + logger.debug('No encryption module loaded or enabled') + } return { - encryptionReady: loadState('settings', 'encryption-ready'), - encryptionEnabled: loadState('settings', 'encryption-enabled'), + encryptionReady: loadState('settings', 'encryption-ready', false), + encryptionEnabled: loadState('settings', 'encryption-enabled', false), externalBackendsEnabled: loadState('settings', 'external-backends-enabled'), encryptionAdminDoc: loadState('settings', 'encryption-admin-doc'), encryptionModules, shouldDisplayWarning: false, migrating: false, - defaultCheckedModule: Object.entries(encryptionModules).find((module) => module[1].default)[0], + defaultCheckedModule, } }, methods: { From b3740550e291f6914381545070078374965fb56f Mon Sep 17 00:00:00 2001 From: nfebe Date: Mon, 11 Nov 2024 15:55:25 +0100 Subject: [PATCH 2/2] fix(settings): Show feedback 4 server-sde encryption toggle Show visual feedback if user clicks on encryption toggle when it cannot be activated. Signed-off-by: nfebe --- apps/settings/src/components/Encryption.vue | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/settings/src/components/Encryption.vue b/apps/settings/src/components/Encryption.vue index 060be3fc5eb66..fe3985b020cbe 100644 --- a/apps/settings/src/components/Encryption.vue +++ b/apps/settings/src/components/Encryption.vue @@ -14,6 +14,10 @@ {{ t('settings', 'Enable server-side encryption') }} + +