var ghostBookshelf = require('./base'), Permission, Permissions; Permission = ghostBookshelf.Model.extend({ tableName: 'permissions', roles: function () { return this.belongsToMany('Role'); }, users: function () { return this.belongsToMany('User'); }, apps: function () { return this.belongsToMany('App'); } }, { /** * Returns an array of keys permitted in a method's `options` hash, depending on the current method. * @param {String} methodName The name of the method to check valid options for. * @return {Array} Keys allowed in the `options` hash of the model's method. */ permittedOptions: function (methodName) { var options = ghostBookshelf.Model.permittedOptions(), // whitelists for the `options` hash argument on methods, by method name. // these are the only options that can be passed to Bookshelf / Knex. validOptions = { add: ['user'] }; if (validOptions[methodName]) { options = options.concat(validOptions[methodName]); } return options; } }); Permissions = ghostBookshelf.Collection.extend({ model: Permission }); module.exports = { Permission: ghostBookshelf.model('Permission', Permission), Permissions: ghostBookshelf.collection('Permissions', Permissions) };