validate the backup format

This commit is contained in:
Girish Ramakrishnan
2023-08-15 18:37:21 +05:30
parent cd9d49116e
commit 9dedf0ec05
2 changed files with 14 additions and 12 deletions
+13 -3
View File
@@ -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