summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2020-10-16 13:39:46 +0100
committerGitHub <noreply@github.com>2020-10-16 13:39:46 +0100
commitda0090fdff65f9f3fecad039f35b8e3615f8d100 (patch)
treee4ca727b1cb81161e0b0c7292fb7f9688497a03a
parentMerge pull request #8535 from matrix-org/rav/third_party_events_updates (diff)
downloadsynapse-da0090fdff65f9f3fecad039f35b8e3615f8d100.tar.xz
Fix modifying events in `ThirdPartyRules` modules (#8564)
EventBuilder.build wants auth events these days
-rw-r--r--changelog.d/8564.feature1
-rw-r--r--synapse/events/builder.py2
-rw-r--r--synapse/handlers/message.py7
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.