remove/inject backups secret fields
follow same pattern as dns code fixes #615
This commit is contained in:
+3
-13
@@ -23,7 +23,6 @@ exports = module.exports = {
|
||||
|
||||
getBackupConfig: getBackupConfig,
|
||||
setBackupConfig: setBackupConfig,
|
||||
removeBackupConfigPrivateFields: removeBackupConfigPrivateFields,
|
||||
|
||||
getCaasConfig: getCaasConfig,
|
||||
|
||||
@@ -60,7 +59,6 @@ exports = module.exports = {
|
||||
|
||||
var addons = require('./addons.js'),
|
||||
assert = require('assert'),
|
||||
asyncIf = require('./asyncif.js'),
|
||||
backups = require('./backups.js'),
|
||||
BackupsError = backups.BackupsError,
|
||||
config = require('./config.js'),
|
||||
@@ -294,13 +292,6 @@ function setDynamicDnsConfig(enabled, callback) {
|
||||
});
|
||||
}
|
||||
|
||||
// removes fields that should not returned in API responses. keep in sync with setBackupConfig
|
||||
function removeBackupConfigPrivateFields(backupConfig) {
|
||||
var result = _.omit(backupConfig, (v, k) => k === 'token' || k === 'key' || k.toLowerCase().includes('secret'));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function getBackupConfig(callback) {
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
@@ -316,13 +307,12 @@ function setBackupConfig(backupConfig, callback) {
|
||||
assert.strictEqual(typeof backupConfig, 'object');
|
||||
assert.strictEqual(typeof callback, 'function');
|
||||
|
||||
// keep in sync with removeBackupConfigPrivateFields
|
||||
const verifyConfig = Object.keys(backupConfig).some((k) => k === 'token' || k === 'key' || k.toLowerCase().includes('secret'));
|
||||
|
||||
getBackupConfig(function (error, curentConfig) {
|
||||
if (error) return callback(error);
|
||||
|
||||
asyncIf(verifyConfig, (done) => backups.testConfig(backupConfig, done), function (error) {
|
||||
backups.injectPrivateFields(backupConfig, curentConfig);
|
||||
|
||||
backups.testConfig(backupConfig, function (error) {
|
||||
if (error && error.reason === BackupsError.BAD_FIELD) return callback(new SettingsError(SettingsError.BAD_FIELD, error.message));
|
||||
if (error && error.reason === BackupsError.EXTERNAL_ERROR) return callback(new SettingsError(SettingsError.EXTERNAL_ERROR, error.message));
|
||||
if (error) return callback(new SettingsError(SettingsError.INTERNAL_ERROR, error));
|
||||
|
||||
Reference in New Issue
Block a user