diff options
author | Erik Johnston <erikj@jki.re> | 2017-05-08 13:20:52 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-08 13:20:52 +0100 |
commit | 6631985990c4043831144127d9f7df94564d5912 (patch) | |
tree | 8ee43afc082b9df7b5285190b7ee9b25f177c60a /synapse/visibility.py | |
parent | Merge pull request #2190 from matrix-org/erikj/mark_remote_as_back_more (diff) | |
parent | Revert "Remove unused import" (diff) | |
download | synapse-6631985990c4043831144127d9f7df94564d5912.tar.xz |
Merge pull request #2200 from matrix-org/erikj/revert_push
Revert speed up push
Diffstat (limited to 'synapse/visibility.py')
-rw-r--r-- | synapse/visibility.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/synapse/visibility.py b/synapse/visibility.py index 5590b866ed..c4dd9ae2c7 100644 --- a/synapse/visibility.py +++ b/synapse/visibility.py @@ -189,6 +189,25 @@ def filter_events_for_clients(store, user_tuples, events, event_id_to_state): @defer.inlineCallbacks +def filter_events_for_clients_context(store, user_tuples, events, event_id_to_context): + user_ids = set(u[0] for u in user_tuples) + event_id_to_state = {} + for event_id, context in event_id_to_context.items(): + state = yield store.get_events([ + e_id + for key, e_id in context.current_state_ids.iteritems() + if key == (EventTypes.RoomHistoryVisibility, "") + or (key[0] == EventTypes.Member and key[1] in user_ids) + ]) + event_id_to_state[event_id] = state + + res = yield filter_events_for_clients( + store, user_tuples, events, event_id_to_state + ) + defer.returnValue(res) + + +@defer.inlineCallbacks def filter_events_for_client(store, user_id, events, is_peeking=False): """ Check which events a user is allowed to see |