UNPKG

@loftysoul/soul

Version:

The professional Content Management System, based ghost

51 lines (43 loc) 1.8 kB
var _ = require('lodash'), utils = require('../../../schema/fixtures/utils'), permissions = require('../../../../services/permissions'), common = require('../../../../lib/common'), resource = 'theme', _private = {}; _private.getPermissions = function getPermissions() { return utils.findModelFixtures('Permission', {object_type: resource}); }; _private.getRelations = function getRelations() { return utils.findPermissionRelationsForObject(resource); }; _private.printResult = function printResult(result, message) { if (result.done === result.expected) { common.logging.info(message); } else { common.logging.warn('(' + result.done + '/' + result.expected + ') ' + message); } }; module.exports.config = { transaction: true }; module.exports.up = function addRedirectsPermissions(options) { var modelToAdd = _private.getPermissions(), relationToAdd = _private.getRelations(), localOptions = _.merge({ context: {internal: true} }, options); return utils.addFixturesForModel(modelToAdd, localOptions) .then(function (result) { _private.printResult(result, 'Adding permissions fixtures for ' + resource + 's'); return utils.addFixturesForRelation(relationToAdd, localOptions); }) .then(function (result) { _private.printResult(result, 'Adding permissions_roles fixtures for ' + resource + 's'); return permissions.init(localOptions); }); }; /** * @TODO: * The down function is quite tricky, because the fixture utility adds **all** missing fixtures for a target resource. * So if we are writing a down function, we are only allowed to remove the fixtures which were added between two Ghost versions. */