text: Meteor.publish('adminRooms', function(filter, types, limit) {
  	if (!this.userId) {
  		return this.ready();
  	}
  	if (RocketChat.authz.hasPermission(this.userId, 'view-room-administration') !== true) {
  		return this.ready();
  	}
  	if (!_.isArray(types)) {
  		types = [];
  	}
  
  	const options = {
  		fields: {
  			name: 1,
  			t: 1,
  			cl: 1,
  			u: 1,
  			usernames: 1,
  			muted: 1,
  			ro: 1,
  			default: 1,
  			topic: 1,
  			msgs: 1,
  			archived: 1
  		},
  		limit,
  		sort: {
  			default: -1,
  			name: 1
  		}
  	};
  
  	filter = _.trim(filter);
  	if (filter && types.length) {
  		// CACHE: can we stop using publications here?
  		return RocketChat.models.Rooms.findByNameContainingAndTypes(filter, types, options);
  	} else if (types.length) {
  		// CACHE: can we stop using publications here?
  		return RocketChat.models.Rooms.findByTypes(types, options);
  	} else {
  		// CACHE: can we stop using publications here?
  		return RocketChat.models.Rooms.findByNameContaining(filter, options);
  	}
  });
  