diff options
author | David Robertson <davidr@element.io> | 2023-03-10 11:58:24 +0000 |
---|---|---|
committer | David Robertson <davidr@element.io> | 2023-03-10 12:00:48 +0000 |
commit | 909eecb34868b2f93ff89c3e2afc9c32a3106c8a (patch) | |
tree | a250a3440f9b295ccab30f9d9d9be0b243133aca | |
parent | Track a set of strings, not EventBases (diff) | |
download | synapse-909eecb34868b2f93ff89c3e2afc9c32a3106c8a.tar.xz |
Require explicit boolean options from callers
-rw-r--r-- | synapse/federation/sender/per_destination_queue.py | 1 | ||||
-rw-r--r-- | synapse/handlers/federation.py | 21 | ||||
-rw-r--r-- | synapse/visibility.py | 5 | ||||
-rw-r--r-- | tests/test_visibility.py | 35 |
4 files changed, 52 insertions, 10 deletions
diff --git a/synapse/federation/sender/per_destination_queue.py b/synapse/federation/sender/per_destination_queue.py index ffc9d95ee7..18a6254c71 100644 --- a/synapse/federation/sender/per_destination_queue.py +++ b/synapse/federation/sender/per_destination_queue.py @@ -547,6 +547,7 @@ class PerDestinationQueue: self._server_name, new_pdus, redact=False, + filter_out_erased_senders=True, ) # If we've filtered out all the extremities, fall back to diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py index 00448560f6..f3e7b4ef17 100644 --- a/synapse/handlers/federation.py +++ b/synapse/handlers/federation.py @@ -1331,7 +1331,12 @@ class FederationHandler: ) events = await filter_events_for_server( - self._storage_controllers, origin, self.server_name, events + self._storage_controllers, + origin, + self.server_name, + events, + redact=True, + filter_out_erased_senders=True, ) return events @@ -1362,7 +1367,12 @@ class FederationHandler: await self._event_auth_handler.assert_host_in_room(event.room_id, origin) events = await filter_events_for_server( - self._storage_controllers, origin, self.server_name, [event] + self._storage_controllers, + origin, + self.server_name, + [event], + redact=True, + filter_out_erased_senders=True, ) event = events[0] return event @@ -1390,7 +1400,12 @@ class FederationHandler: ) missing_events = await filter_events_for_server( - self._storage_controllers, origin, self.server_name, missing_events + self._storage_controllers, + origin, + self.server_name, + missing_events, + redact=True, + filter_out_erased_senders=True, ) return missing_events diff --git a/synapse/visibility.py b/synapse/visibility.py index a776f9b900..46adaa0da1 100644 --- a/synapse/visibility.py +++ b/synapse/visibility.py @@ -576,8 +576,9 @@ async def filter_events_for_server( target_server_name: str, local_server_name: str, events: Sequence[EventBase], - redact: bool = True, - filter_out_erased_senders: bool = True, + *, + redact: bool, + filter_out_erased_senders: bool, ) -> List[EventBase]: """Filter a list of events based on whether the target server is allowed to see them. diff --git a/tests/test_visibility.py b/tests/test_visibility.py index 2801a950a8..569a01a417 100644 --- a/tests/test_visibility.py +++ b/tests/test_visibility.py @@ -63,7 +63,12 @@ class FilterEventsForServerTestCase(unittest.HomeserverTestCase): filtered = self.get_success( filter_events_for_server( - self._storage_controllers, "test_server", "hs", events_to_filter + self._storage_controllers, + "test_server", + "hs", + events_to_filter, + redact=True, + filter_out_erased_senders=True, ) ) @@ -85,7 +90,12 @@ class FilterEventsForServerTestCase(unittest.HomeserverTestCase): self.assertEqual( self.get_success( filter_events_for_server( - self._storage_controllers, "remote_hs", "hs", [outlier] + self._storage_controllers, + "remote_hs", + "hs", + [outlier], + redact=True, + filter_out_erased_senders=True, ) ), [outlier], @@ -96,7 +106,12 @@ class FilterEventsForServerTestCase(unittest.HomeserverTestCase): filtered = self.get_success( filter_events_for_server( - self._storage_controllers, "remote_hs", "local_hs", [outlier, evt] + self._storage_controllers, + "remote_hs", + "local_hs", + [outlier, evt], + redact=True, + filter_out_erased_senders=True, ) ) self.assertEqual(len(filtered), 2, f"expected 2 results, got: {filtered}") @@ -108,7 +123,12 @@ class FilterEventsForServerTestCase(unittest.HomeserverTestCase): # be redacted) filtered = self.get_success( filter_events_for_server( - self._storage_controllers, "other_server", "local_hs", [outlier, evt] + self._storage_controllers, + "other_server", + "local_hs", + [outlier, evt], + redact=True, + filter_out_erased_senders=True, ) ) self.assertEqual(filtered[0], outlier) @@ -143,7 +163,12 @@ class FilterEventsForServerTestCase(unittest.HomeserverTestCase): # ... and the filtering happens. filtered = self.get_success( filter_events_for_server( - self._storage_controllers, "test_server", "local_hs", events_to_filter + self._storage_controllers, + "test_server", + "local_hs", + events_to_filter, + redact=True, + filter_out_erased_senders=True, ) ) |