delete: function(prop) { if (localSettings.hasOwnProperty(prop)) { throw new Error(log._("settings.property-read-only", {prop:prop})); } if (globalSettings === null) { throw new Error(log._("settings.not-available")); } if (globalSettings.hasOwnProperty(prop)) { delete globalSettings[prop]; return storage.saveSettings(globalSettings); } return when.resolve(); },
set: function(prop,value) { if (prop === 'users') { throw new Error("Do not access user settings directly. Use settings.setUserSettings"); } if (localSettings.hasOwnProperty(prop)) { throw new Error(log._("settings.property-read-only", {prop:prop})); } if (globalSettings === null) { throw new Error(log._("settings.not-available")); } var current = globalSettings[prop]; globalSettings[prop] = value; try { assert.deepEqual(current,value); return when.resolve(); } catch(err) { return storage.saveSettings(globalSettings); } },
fs.readFile(sessionsFile,'utf8',function(err,data){ if (!err) { try { return resolve(util.parseJSON(data)); } catch(err2) { log.trace("Corrupted sessions file - resetting"); } } resolve({}); })
function generateSSHKeyPair(name, privateKeyPath, comment, password, size) { log.trace("ssh-keygen["+[name,privateKeyPath,comment,size,"hasPassword?"+!!password].join(",")+"]"); return keygen.generateKey({location: privateKeyPath, comment: comment, password: password, size: size}) .then(function(stdout) { return name; }) .catch(function(err) { log.log('[SSHKey generation] error:', err); throw err; }); }
get: function(prop) { if (prop === 'users') { throw new Error("Do not access user settings directly. Use settings.getUserSettings"); } if (localSettings.hasOwnProperty(prop)) { return clone(localSettings[prop]); } if (globalSettings === null) { throw new Error(log._("settings.not-available")); } return clone(globalSettings[prop]); },
setUserSettings: function(username,settings) { if (globalSettings === null) { throw new Error(log._("settings.not-available")); } var current = userSettings[username]; userSettings[username] = settings; try { assert.deepEqual(current,settings); return when.resolve(); } catch(err) { globalSettings.users = userSettings; return storage.saveSettings(globalSettings); } }
.catch(function(err) { log.log('[SSHKey generation] error:', err); throw err; });