diff --git a/public/javascripts/encryption.js b/public/javascripts/encryption.js index ac060dc4a..0634c4139 100644 --- a/public/javascripts/encryption.js +++ b/public/javascripts/encryption.js @@ -12,6 +12,16 @@ const encryption = (function() { let encryptedDataKey = null; let encryptionSessionTimeout = null; + $.ajax({ + url: baseApiUrl + 'settings/all', + type: 'GET', + error: () => error("Error getting encryption settings.") + }).then(settings => { + encryptionSalt = settings.password_derived_key_salt; + encryptionSessionTimeout = settings.encryption_session_timeout; + encryptedDataKey = settings.encrypted_data_key; + }); + function setEncryptionSalt(encSalt) { encryptionSalt = encSalt; } @@ -438,7 +448,6 @@ const encryption = (function() { } return { - setEncryptionSalt, setEncryptedDataKey, setEncryptionSessionTimeout, ensureEncryptionIsAvailable, diff --git a/public/javascripts/init.js b/public/javascripts/init.js index 93d900e33..87ade0fe3 100644 --- a/public/javascripts/init.js +++ b/public/javascripts/init.js @@ -1,6 +1,7 @@ "use strict"; const glob = { + allNoteIds: [], activeDialog: null }; diff --git a/public/javascripts/note_tree.js b/public/javascripts/note_tree.js index 7d3d6a040..862d79b29 100644 --- a/public/javascripts/note_tree.js +++ b/public/javascripts/note_tree.js @@ -6,8 +6,6 @@ const noteTree = (function() { let treeLoadTime = null; let clipboardNoteId = null; - glob.allNoteIds = []; - function getTreeLoadTime() { return treeLoadTime; } @@ -194,9 +192,6 @@ const noteTree = (function() { return $.get(baseApiUrl + 'tree').then(resp => { const notes = resp.notes; let startNoteId = resp.start_note_id; - encryption.setEncryptionSalt(resp.password_derived_key_salt); - encryption.setEncryptionSessionTimeout(resp.encryption_session_timeout); - encryption.setEncryptedDataKey(resp.encrypted_data_key); treeLoadTime = resp.tree_load_time; // add browser ID header to all AJAX requests diff --git a/routes/api/settings.js b/routes/api/settings.js index 05fdf5e54..9596b209f 100644 --- a/routes/api/settings.js +++ b/routes/api/settings.js @@ -7,19 +7,20 @@ const options = require('../../services/options'); const audit_category = require('../../services/audit_category'); const auth = require('../../services/auth'); +// options allowed to be updated directly in settings dialog const ALLOWED_OPTIONS = ['encryption_session_timeout', 'history_snapshot_time_interval']; -router.get('/', auth.checkApiAuth, async (req, res, next) => { - const dict = {}; +router.get('/all', auth.checkApiAuth, async (req, res, next) => { + const settings = await sql.getMap("SELECT opt_name, opt_value FROM options"); - const settings = await sql.getResults("SELECT opt_name, opt_value FROM options WHERE opt_name IN (" + res.send(settings); +}); + +router.get('/', auth.checkApiAuth, async (req, res, next) => { + const settings = await sql.getMap("SELECT opt_name, opt_value FROM options WHERE opt_name IN (" + ALLOWED_OPTIONS.map(x => '?').join(",") + ")", ALLOWED_OPTIONS); - for (const set of settings) { - dict[set['opt_name']] = set['opt_value']; - } - - res.send(dict); + res.send(settings); }); router.post('/', async (req, res, next) => {