UNPKG

@box/cli

Version:

Official command line interface for the Box API

99 lines (87 loc) 2.94 kB
'use strict'; const BoxCommand = require('../../../box-command'); const { Flags, Args } = require('@oclif/core'); class GroupsAddMembershipCommand extends BoxCommand { async run() { const { flags, args } = await this.parse(GroupsAddMembershipCommand); let options = { configurable_permissions: {} }; if (flags.hasOwnProperty('can-run-reports')) { options.configurable_permissions.can_run_reports = flags['can-run-reports']; } if (flags.hasOwnProperty('can-instant-login')) { options.configurable_permissions.can_instant_login = flags['can-instant-login']; } if (flags.hasOwnProperty('can-create-accounts')) { options.configurable_permissions.can_create_accounts = flags['can-create-accounts']; } if (flags.hasOwnProperty('can-edit-accounts')) { options.configurable_permissions.can_edit_accounts = flags['can-edit-accounts']; } // Set role from the "role" flag first, since it has a default value options.role = flags.role; if (flags['set-admin']) { options.role = this.client.groups.userRoles.ADMIN; } else if (flags['set-member']) { options.role = this.client.groups.userRoles.MEMBER; } let membership = await this.client.groups.addUser(args.groupID, args.userID, options); await this.output(membership); } } GroupsAddMembershipCommand.aliases = [ 'groups:membership:add' ]; GroupsAddMembershipCommand.description = 'Add a user to a group'; GroupsAddMembershipCommand.examples = ['box groups:memberships:add 33333 12345']; GroupsAddMembershipCommand._endpoint = 'post_group_memberships'; GroupsAddMembershipCommand.flags = { ...BoxCommand.flags, role: Flags.string({ char: 'r', description: 'Set the user\'s role in the group', default: 'member', options: [ 'member', 'admin' ] }), 'set-admin': Flags.boolean({ description: 'Set the user\'s role to Group Admin', exclusive: ['set-member'], hidden: true, }), 'set-member': Flags.boolean({ description: 'Set the user\'s role to Group Member', exclusive: ['set-admin'], hidden: true, }), 'can-run-reports': Flags.boolean({ description: 'If the user is a group admin, allow them to run reports', allowNo: true, }), 'can-instant-login': Flags.boolean({ description: 'If the user is a group admin, allow them to instant login', allowNo: true, }), 'can-create-accounts': Flags.boolean({ description: 'If the user is a group admin, allow them to create new users', allowNo: true, }), 'can-edit-accounts': Flags.boolean({ description: 'If the user is a group admin, allow them to edit user accounts', allowNo: true, }), }; GroupsAddMembershipCommand.args = { userID: Args.string({ name: 'userID', required: true, hidden: false, description: 'ID of the user to add to the group', }), groupID: Args.string({ name: 'groupID', required: true, hidden: false, description: 'ID of the group to add the user to', }), }; module.exports = GroupsAddMembershipCommand;