text: Meteor.methods({
  	getUsersOfRoom(roomId, showAll) {
  		if (!Meteor.userId()) {
  			throw new Meteor.Error('error-invalid-user', 'Invalid user', { method: 'getUsersOfRoom' });
  		}
  
  		const room = Meteor.call('canAccessRoom', roomId, Meteor.userId());
  		if (!room) {
  			throw new Meteor.Error('error-invalid-room', 'Invalid room', { method: 'getUsersOfRoom' });
  		}
  
  		if (room.broadcast && !RocketChat.authz.hasPermission(Meteor.userId(), 'view-broadcast-member-list', roomId)) {
  			throw new Meteor.Error('error-not-allowed', 'Not allowed', { method: 'getUsersOfRoom' });
  		}
  
  		const filter = (record) => {
  			if (!record._user) {
  				console.log('Subscription without user', record._id);
  				return false;
  			}
  
  			if (showAll === true) {
  				return true;
  			}
  
  			return record._user.status !== 'offline';
  		};
  
  		const map = (record) => {
  			return {
  				_id: record._user._id,
  				username: record._user.username,
  				name: record._user.name
  			};
  		};
  
  		const records = RocketChat.models.Subscriptions.findByRoomId(roomId).fetch();
  
  		return {
  			total: records.length,
  			records: records.filter(filter).map(map)
  		};
  	}
  });
  