2
1
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2023-12-13 21:00:40 +01:00

Added migrations for backupContent permission

no-issue
This commit is contained in:
Fabien O'Carroll 2019-08-07 14:12:59 +08:00
parent f31e535041
commit 42c9904a8f
2 changed files with 107 additions and 0 deletions

View file

@ -0,0 +1,61 @@
const logging = require('../../../../lib/common/logging');
const models = require('../../../../models');
const utils = require('../../../schema/fixtures/utils');
const fixtureBackupContentPerm = utils.findModelFixtureEntry('Permission', {
object_type: 'db',
action_type: 'backupContent'
});
module.exports = {
config: {
transaction: true
},
async up(options) {
try {
const existingBackupContentPerm = await models.Permission.findOne(
fixtureBackupContentPerm,
options
);
if (existingBackupContentPerm) {
return logging.warn('Issue adding db.backupContent (already exists)');
}
const result = await utils.addFixturesForModel({
name: 'Permission',
entries: [fixtureBackupContentPerm]
}, options);
const success = result.done === result.expected;
if (!success) {
return logging.warn('Issue adding db.backupContent permission (did not insert)');
}
return logging.info('Completed adding db.backupContent permission');
} catch (err) {
return logging.error('Errored when adding db.backupContent permission');
}
},
async down(options) {
try {
const existingBackupContentPerm = await models.Permission.findOne(
fixtureBackupContentPerm,
options
);
if (!existingBackupContentPerm) {
return logging.warn('Issue removing db.backupContent (already removed)');
}
await existingBackupContentPerm.destroy(options);
return logging.info('Completed removing db.backupContent permission');
} catch (err) {
return logging.error('Errored when removing db.backupContent permission');
}
}
};

View file

@ -0,0 +1,46 @@
const logging = require('../../../../lib/common/logging');
const utils = require('../../../schema/fixtures/utils');
const relationFixtures = {
from: {
model: 'Role',
match: 'name',
relation: 'permissions'
},
to: {
model: 'Permission',
match: ['object_type', 'action_type']
},
entries: {
Administrator: {
db: 'backupContent'
},
'DB Backup Integration': {
db: 'backupContent'
}
}
};
module.exports = {
config: {
transaction: true
},
async up(options) {
try {
await utils.addFixturesForRelation(relationFixtures, options);
return logging.info('Completed adding db.backupContent permission to roles');
} catch (err) {
return logging.warn('Issue adding db.backupContent permission to roles');
}
},
async down(options) {
try {
await utils.removeFixturesForRelation(relationFixtures, options);
return logging.info('Completed removing db.backupContent permission from roles');
} catch (err) {
return logging.warn('Issue removing db.backupContent permission from roles');
}
}
};