The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/packages/rocketchat-authorization/server/functions/addUsersToRoles.coffee

28 lines
830 B

RocketChat.authz.addUsersToRoles = (userIds, roleNames, scope ) ->
console.log '[methods] addUserToRoles -> '.green, 'arguments:', arguments
if not userIds or not roleNames
return false
unless _.isArray(userIds)
userIds = [userIds]
users = Meteor.users.find({_id: {$in : userIds}}).fetch()
unless userIds.length is users.length
throw new Meteor.Error 'invalid-user'
unless _.isArray(roleNames)
roleNames = [roleNames]
existingRoleNames = _.pluck(RocketChat.authz.getRoles().fetch(), 'name')
invalidRoleNames = _.difference( roleNames, existingRoleNames)
unless _.isEmpty(invalidRoleNames)
# throw new Meteor.Error 'invalid-role'
for role in invalidRoleNames
Roles.createRole role
unless _.isString(scope)
scope = Roles.GLOBAL_GROUP
Roles.addUsersToRoles( userIds, roleNames, scope)
return true