diff options
author | Erik Johnston <erikj@jki.re> | 2019-01-25 10:20:22 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-25 10:20:22 +0000 |
commit | 03b7df1af231a4d60dbff7e38708a9aad7fa0aac (patch) | |
tree | 62626873812dfce5f24b556b406b47a47159b214 /synapse/handlers/message.py | |
parent | Merge pull request #4448 from matrix-org/erikj/get_pdu_versions (diff) | |
parent | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/require_fo... (diff) | |
download | synapse-03b7df1af231a4d60dbff7e38708a9aad7fa0aac.tar.xz |
Merge pull request #4451 from matrix-org/erikj/require_format_version
Require event format version to parse or create events
Diffstat (limited to 'synapse/handlers/message.py')
-rw-r--r-- | synapse/handlers/message.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py index a7cd779b02..7aaa4fba33 100644 --- a/synapse/handlers/message.py +++ b/synapse/handlers/message.py @@ -278,7 +278,15 @@ class EventCreationHandler(object): """ yield self.auth.check_auth_blocking(requester.user.to_string()) - builder = self.event_builder_factory.new(event_dict) + if event_dict["type"] == EventTypes.Create and event_dict["state_key"] == "": + room_version = event_dict["content"]["room_version"] + else: + try: + room_version = yield self.store.get_room_version(event_dict["room_id"]) + except NotFoundError: + raise AuthError(403, "Unknown room") + + builder = self.event_builder_factory.new(room_version, event_dict) self.validator.validate_new(builder) |