diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2020-10-16 13:39:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-16 13:39:46 +0100 |
commit | da0090fdff65f9f3fecad039f35b8e3615f8d100 (patch) | |
tree | e4ca727b1cb81161e0b0c7292fb7f9688497a03a | |
parent | Merge pull request #8535 from matrix-org/rav/third_party_events_updates (diff) | |
download | synapse-da0090fdff65f9f3fecad039f35b8e3615f8d100.tar.xz |
Fix modifying events in `ThirdPartyRules` modules (#8564)
EventBuilder.build wants auth events these days
-rw-r--r-- | changelog.d/8564.feature | 1 | ||||
-rw-r--r-- | synapse/events/builder.py | 2 | ||||
-rw-r--r-- | synapse/handlers/message.py | 7 |
3 files changed, 8 insertions, 2 deletions
diff --git a/changelog.d/8564.feature b/changelog.d/8564.feature new file mode 100644 index 0000000000..45342e66ad --- /dev/null +++ b/changelog.d/8564.feature @@ -0,0 +1 @@ +Support modifying event content in `ThirdPartyRules` modules. diff --git a/synapse/events/builder.py b/synapse/events/builder.py index df4f950fec..07df258e6e 100644 --- a/synapse/events/builder.py +++ b/synapse/events/builder.py @@ -98,7 +98,7 @@ class EventBuilder: return self._state_key is not None async def build( - self, prev_event_ids: List[str], auth_event_ids: Optional[List[str]] + self, prev_event_ids: List[str], auth_event_ids: Optional[List[str]], ) -> EventBase: """Transform into a fully signed and hashed event diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py index 7f00805a91..d6855c60ea 100644 --- a/synapse/handlers/message.py +++ b/synapse/handlers/message.py @@ -1364,7 +1364,12 @@ class EventCreationHandler: for k, v in original_event.internal_metadata.get_dict().items(): setattr(builder.internal_metadata, k, v) - event = await builder.build(prev_event_ids=original_event.prev_event_ids()) + # the event type hasn't changed, so there's no point in re-calculating the + # auth events. + event = await builder.build( + prev_event_ids=original_event.prev_event_ids(), + auth_event_ids=original_event.auth_event_ids(), + ) # we rebuild the event context, to be on the safe side. If nothing else, # delta_ids might need an update. |