Use the filtered version of an event when responding to /context requests for that event
Sometimes the filtering function can return a pruned version of an event (on top of either the event itself or an empty list), if it thinks the user should be able to see that there's an event there but not the content of that event. Therefore, the previous logic of 'if filtered is empty then we can use the event we retrieved from the database' is flawed, and we should use the event returned by the filtering function.
This commit is contained in:
parent
ba57a45644
commit
487f1bb49d
|
@ -907,7 +907,10 @@ class RoomContextHandler(object):
|
||||||
|
|
||||||
results["events_before"] = yield filter_evts(results["events_before"])
|
results["events_before"] = yield filter_evts(results["events_before"])
|
||||||
results["events_after"] = yield filter_evts(results["events_after"])
|
results["events_after"] = yield filter_evts(results["events_after"])
|
||||||
results["event"] = event
|
# filter_evts can return a pruned event in case the user is allowed to see that
|
||||||
|
# there's something there but not see the content, so use the event that's in
|
||||||
|
# `filtered` rather than the event we retrieved from the datastore.
|
||||||
|
results["event"] = filtered[0]
|
||||||
|
|
||||||
if results["events_after"]:
|
if results["events_after"]:
|
||||||
last_event_id = results["events_after"][-1].event_id
|
last_event_id = results["events_after"][-1].event_id
|
||||||
|
|
Loading…
Reference in New Issue