diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2020-03-05 15:46:44 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-05 15:46:44 +0000 |
commit | 78a15b1f9d3ba3aca49dc4332e86203180d5c863 (patch) | |
tree | 2a732b93bff830e3087234e0186b8d4c2c4dea2c /synapse/events/utils.py | |
parent | Merge pull request #7035 from matrix-org/babolivier/hide_dummy_events (diff) | |
download | synapse-78a15b1f9d3ba3aca49dc4332e86203180d5c863.tar.xz |
Store room_versions in EventBase objects (#6875)
This is a bit fiddly because it all has to be done on one fell swoop: * Wherever we create a new event, pass in the room version (and check it matches the format version) * When we prune an event, use the room version of the unpruned event to create the pruned version. * When we pass an event over the replication protocol, pass the room version over alongside it, and use it when deserialising the event again.
Diffstat (limited to 'synapse/events/utils.py')
-rw-r--r-- | synapse/events/utils.py | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/synapse/events/utils.py b/synapse/events/utils.py index f70f5032fb..bc6f98ae3b 100644 --- a/synapse/events/utils.py +++ b/synapse/events/utils.py @@ -35,26 +35,20 @@ from . import EventBase SPLIT_FIELD_REGEX = re.compile(r"(?<!\\)\.") -def prune_event(event): +def prune_event(event: EventBase) -> EventBase: """ Returns a pruned version of the given event, which removes all keys we don't know about or think could potentially be dodgy. This is used when we "redact" an event. We want to remove all fields that the user has specified, but we do want to keep necessary information like type, state_key etc. - - Args: - event (FrozenEvent) - - Returns: - FrozenEvent """ pruned_event_dict = prune_event_dict(event.get_dict()) - from . import event_type_from_format_version + from . import make_event_from_dict - pruned_event = event_type_from_format_version(event.format_version)( - pruned_event_dict, event.internal_metadata.get_dict() + pruned_event = make_event_from_dict( + pruned_event_dict, event.room_version, event.internal_metadata.get_dict() ) # Mark the event as redacted |