Filter events_before and events_after in /context requests

While the current version of the spec doesn't say much about how this endpoint uses filters (see https://github.com/matrix-org/matrix-doc/issues/2338), the current implementation is that some fields of an EventFilter apply (the ones that are used when running the SQL query) and others don't (the ones that are used by the filter itself) because we don't call event_filter.filter(...). This seems counter-intuitive and probably not what we want so this commit fixes it.
This commit is contained in:
Brendan Abolivier 2019-11-05 12:21:59 +00:00
parent 4e1c7b79fa
commit 1dffa78701
No known key found for this signature in database
GPG Key ID: 1E015C145F1916CD

View File

@ -874,8 +874,10 @@ class RoomContextHandler(object):
room_id, event_id, before_limit, after_limit, event_filter
)
results["events_before"] = yield filter_evts(results["events_before"])
results["events_after"] = yield filter_evts(results["events_after"])
filtered_before_events = event_filter.filter(results["events_before"])
results["events_before"] = yield filter_evts(filtered_before_events)
filtered_after_events = event_filter.filter(results["events_after"])
results["events_after"] = yield filter_evts(filtered_after_events)
results["event"] = event
if results["events_after"]: