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

21 lines
746 B

Meteor.methods
joinRoom: (rid, code) ->
check rid, String
# check code, Match.Maybe(String)
if not Meteor.userId()
throw new Meteor.Error 'error-invalid-user', 'Invalid user', { method: 'joinRoom' }
room = RocketChat.models.Rooms.findOneById rid
if not room?
throw new Meteor.Error 'error-invalid-room', 'Invalid room', { method: 'joinRoom' }
if room.t isnt 'c' or RocketChat.authz.hasPermission(Meteor.userId(), 'view-c-room') isnt true
throw new Meteor.Error 'error-not-allowed', 'Not allowed', { method: 'joinRoom' }
if room.joinCodeRequired is true and code isnt room.joinCode
throw new Meteor.Error 'error-code-invalid', 'Invalid Code', { method: 'joinRoom' }
RocketChat.addUserToRoom(rid, Meteor.user())