UNPKG

clever-roles

Version:

Adds permissions and roles to users with CleverStack

53 lines (45 loc) 1.44 kB
module.exports = function(Controller, RoleService, PermissionController, AccountController) { return Controller.extend( { service: RoleService, route: [ '[POST] /account/:AccountId/role/?', '/account/:AccountId/role/:id/?', '/account/:AccountId/role/:id/:action/?', '/account/:AccountId/roles/?', '/account/:AccountId/roles/:action/?' ], autoRouting: [ PermissionController.requiresPermission({ all: 'Role.$action' }), AccountController.addAccountIdToRequest({ all : false, listAction : true, getAction : true, postAction : true, putAction : true, deleteAction : true }) ] }, { assignAction: function () { var roleId = this.req.params.id , users = this.req.body.users , removed = this.req.body.removed; users = !users || !Array.isArray(users) ? [] : users; removed = !removed || !Array.isArray(removed) ? [] : removed; RoleService .listRolesWithPerm(accId, roleId) .then(function(role) { return [role, RoleService.assignRole(accId, users, removed, role)]; }) .spread(function(role) { return RoleService.getRoleCounts(role, accId); }) .then(this.proxy('handleServiceMessage')) .catch(this.proxy('handleException')); } }); }