validate the backup format
This commit is contained in:
+13
-3
@@ -26,6 +26,7 @@ exports = module.exports = {
|
||||
validatePolicy,
|
||||
validateEncryptionPassword,
|
||||
testConfig,
|
||||
validateBackupFormat,
|
||||
|
||||
getPolicy,
|
||||
setPolicy,
|
||||
@@ -348,8 +349,6 @@ async function testConfig(backupConfig) {
|
||||
const func = storage.api(backupConfig.provider);
|
||||
if (!func) return new BoxError(BoxError.BAD_FIELD, 'unknown storage provider');
|
||||
|
||||
if (backupConfig.format !== 'tgz' && backupConfig.format !== 'rsync') return new BoxError(BoxError.BAD_FIELD, 'unknown format');
|
||||
|
||||
await storage.api(backupConfig.provider).testConfig(backupConfig);
|
||||
}
|
||||
|
||||
@@ -435,6 +434,14 @@ async function setLimits(limits) {
|
||||
await settings.setJson(settings.BACKUP_LIMITS_KEY, limits);
|
||||
}
|
||||
|
||||
function validateBackupFormat(format) {
|
||||
assert.strictEqual(typeof format, 'string');
|
||||
|
||||
if (format === 'tgz' || format == 'rsync') return null;
|
||||
|
||||
return new BoxError(BoxError.BAD_FIELD, 'Invalid backup format');
|
||||
}
|
||||
|
||||
async function setStorage(storageConfig) {
|
||||
assert.strictEqual(typeof storageConfig, 'object');
|
||||
|
||||
@@ -459,7 +466,10 @@ async function setStorage(storageConfig) {
|
||||
}
|
||||
}
|
||||
|
||||
const error = await testConfig(storageConfig);
|
||||
let error = validateBackupFormat(storageConfig.format);
|
||||
if (error) throw error;
|
||||
|
||||
error = await testConfig(storageConfig);
|
||||
if (error) throw error;
|
||||
|
||||
if ('password' in storageConfig) { // user set password
|
||||
|
||||
Reference in New Issue
Block a user