From b44a7e2d750f137b0380522a3f1e78d6139604b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20S=C3=A1?= Date: Wed, 9 Mar 2022 17:51:24 +0000 Subject: [PATCH] fix: correctly hide secret fields from GQL results --- lib/new-settings-loader.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/new-settings-loader.js b/lib/new-settings-loader.js index 76cd120c..e571d1e2 100644 --- a/lib/new-settings-loader.js +++ b/lib/new-settings-loader.js @@ -100,16 +100,19 @@ function loadAccounts (schemaVersion) { .then(_.compose(_.defaultTo({}), _.get('data.accounts'))) } +function hideSecretFields (accounts) { + return _.flow( + _.filter(path => !_.isEmpty(_.get(path, accounts))), + _.reduce( + (accounts, path) => _.assoc(path, PASSWORD_FILLED, accounts), + accounts + ) + )(SECRET_FIELDS) +} + function showAccounts (schemaVersion) { return loadAccounts(schemaVersion) - .then(accounts => { - const filledSecretPaths = _.compact(_.map(path => { - if (!_.isEmpty(_.get(path, accounts))) { - return path - } - }, SECRET_FIELDS)) - return _.compose(_.map(path => _.assoc(path, PASSWORD_FILLED), filledSecretPaths))(accounts) - }) + .then(hideSecretFields) } const insertConfigRow = (dbOrTx, data) =>