/* global __appdir */ const path = require('path') var permissions = require(path.join(__appdir, 'lib', 'permissions', 'permissions')) var db = require(path.join(__appdir, 'lib', 'sequelize')) updatePermissionDatabase() /* * Update the permission-Database accordingly to the permission.json */ function updatePermissionDatabase () { var permissionNames = [] // Insert / Update entries in Database which are in the permission.json permissions.forEach(function (permission) { permissionNames.push(permission.name) upsert(db.permission, { name: permission.name, descr: permission.descr, groupdependent: permission.groupdependent }, { name: permission.name }) }) // Delete entries from Database which are not in the permission.json db.permission.destroy( { where: { [db.Op.not]: { name: permissionNames } } } ) } /* * model: * newItem: * where: * * Updates or inserts the given newItem in the given model according to * the where-clause. */ function upsert (model, newItem, where) { return model .findOne({ where: where }) .then(function (foundItem) { if (!foundItem) { return model .create(newItem) .then(function (item) { return { item: item, created: true } }) } return model .update(newItem, { where: where }) .then(function (item) { return { item: item, created: false } }) }) }