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/server/methods/removeUserFromRoom.coffee

36 lines
915 B

Meteor.methods
removeUserFromRoom: (data) ->
fromId = Meteor.userId()
# console.log '[methods] removeUserFromRoom -> '.green, 'fromId:', fromId, 'data:', data
room = ChatRoom.findOne data.rid
if room.u?._id isnt Meteor.userId() and room.t is 'c'
throw new Meteor.Error 403, 'Not allowed'
update =
$pull:
usernames: data.username
removedUser = Meteor.users.findOne username: data.username
ChatRoom.update data.rid, update
ChatSubscription.remove { 'u._id': data.username, rid: data.rid }
switch room.t
when 'c'
RocketChat.authz.removeUsersFromRole(removedUser._id; 'channel-moderator', data.rid)
when 'p'
RocketChat.authz.removeUsersFromRole(removedUser._id; 'group-moderator', data.rid)
ChatMessage.insert
rid: data.rid
ts: (new Date)
t: 'ru'
msg: removedUser.name
u:
_id: Meteor.userId()
username: Meteor.user().username
return true