Skip to content
Snippets Groups Projects
Commit 5c41224a authored by Erik Johnston's avatar Erik Johnston
Browse files

Filter room ids before hitting the database

parent c8baada9
No related branches found
No related tags found
No related merge requests found
......@@ -202,6 +202,26 @@ class Filter(object):
return True
def filter_rooms(self, room_ids):
"""Apply the 'rooms' filter to a given list of rooms.
Args:
room_ids (list): A list of room_ids.
Returns:
list: A list of room_ids that match the filter
"""
room_ids = set(room_ids)
disallowed_rooms = set(self.filter_json.get("not_rooms", []))
room_ids -= disallowed_rooms
allowed_rooms = self.filter_json.get("rooms", None)
if allowed_rooms is not None:
room_ids &= set(allowed_rooms)
return room_ids
def filter(self, events):
return filter(self.check, events)
......
......@@ -64,7 +64,7 @@ class SearchHandler(BaseHandler):
)
room_ids = set(r.room_id for r in rooms)
# TODO: Apply room filter to rooms list
room_ids = filtr.filter_rooms(room_ids)
rank_map, event_map = yield self.store.search_msgs(room_ids, search_term, keys)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment