aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTill <2353100+S7evinK@users.noreply.github.com>2023-09-27 08:27:08 +0200
committerGitHub <noreply@github.com>2023-09-27 08:27:08 +0200
commit05a8f1ede3ca0ccd0f9a7d327ef3cb30b6fd2798 (patch)
treecda98010f6bf78dd4a595d5132dcf5186c20a99f
parent16d922de701ca28966127b2e1160d65527f65e8e (diff)
Support for room version v11 (#3204)
Fixes #3203
-rw-r--r--are-we-synapse-yet.list10
-rw-r--r--clientapi/routing/redaction.go8
-rw-r--r--go.mod2
-rw-r--r--go.sum4
-rw-r--r--roomserver/internal/perform/perform_create_room.go11
-rw-r--r--sytest-whitelist10
6 files changed, 38 insertions, 7 deletions
diff --git a/are-we-synapse-yet.list b/are-we-synapse-yet.list
index 58537473..80c0dbff 100644
--- a/are-we-synapse-yet.list
+++ b/are-we-synapse-yet.list
@@ -944,4 +944,12 @@ rmv remote user can join room with version 10
rmv User can invite remote user to room with version 10
rmv Remote user can backfill in a room with version 10
rmv Can reject invites over federation for rooms with version 10
-rmv Can receive redactions from regular users over federation in room version 10 \ No newline at end of file
+rmv Can receive redactions from regular users over federation in room version 10
+rmv User can create and send/receive messages in a room with version 11
+rmv local user can join room with version 11
+rmv User can invite local user to room with version 11
+rmv remote user can join room with version 11
+rmv User can invite remote user to room with version 11
+rmv Remote user can backfill in a room with version 11
+rmv Can reject invites over federation for rooms with version 11
+rmv Can receive redactions from regular users over federation in room version 11 \ No newline at end of file
diff --git a/clientapi/routing/redaction.go b/clientapi/routing/redaction.go
index aa579db6..f331a73c 100644
--- a/clientapi/routing/redaction.go
+++ b/clientapi/routing/redaction.go
@@ -34,7 +34,8 @@ import (
)
type redactionContent struct {
- Reason string `json:"reason"`
+ Reason string `json:"reason"`
+ Redacts string `json:"redacts"`
}
type redactionResponse struct {
@@ -151,6 +152,11 @@ func SendRedaction(
Type: spec.MRoomRedaction,
Redacts: eventID,
}
+
+ // Room version 11 expects the "redacts" field on the
+ // content field, so add it here as well
+ r.Redacts = eventID
+
err = proto.SetContent(r)
if err != nil {
util.GetLogger(req.Context()).WithError(err).Error("proto.SetContent failed")
diff --git a/go.mod b/go.mod
index 78c1058e..3176a8b7 100644
--- a/go.mod
+++ b/go.mod
@@ -22,7 +22,7 @@ require (
github.com/matrix-org/dugong v0.0.0-20210921133753-66e6b1c67e2e
github.com/matrix-org/go-sqlite3-js v0.0.0-20220419092513-28aa791a1c91
github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530
- github.com/matrix-org/gomatrixserverlib v0.0.0-20230926023021-d4830c9bfa49
+ github.com/matrix-org/gomatrixserverlib v0.0.0-20230926165653-79fcff283fc4
github.com/matrix-org/pinecone v0.11.1-0.20230810010612-ea4c33717fd7
github.com/matrix-org/util v0.0.0-20221111132719-399730281e66
github.com/mattn/go-sqlite3 v1.14.17
diff --git a/go.sum b/go.sum
index 3cf56949..7f0e9883 100644
--- a/go.sum
+++ b/go.sum
@@ -208,8 +208,8 @@ github.com/matrix-org/go-sqlite3-js v0.0.0-20220419092513-28aa791a1c91 h1:s7fexw
github.com/matrix-org/go-sqlite3-js v0.0.0-20220419092513-28aa791a1c91/go.mod h1:e+cg2q7C7yE5QnAXgzo512tgFh1RbQLC0+jozuegKgo=
github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530 h1:kHKxCOLcHH8r4Fzarl4+Y3K5hjothkVW5z7T1dUM11U=
github.com/matrix-org/gomatrix v0.0.0-20220926102614-ceba4d9f7530/go.mod h1:/gBX06Kw0exX1HrwmoBibFA98yBk/jxKpGVeyQbff+s=
-github.com/matrix-org/gomatrixserverlib v0.0.0-20230926023021-d4830c9bfa49 h1:o4mdKYYIYCi/QplAjBAJ5kvu3NXXkutZF88gTTpZjj4=
-github.com/matrix-org/gomatrixserverlib v0.0.0-20230926023021-d4830c9bfa49/go.mod h1:H9V9N3Uqn1bBJqYJNGK1noqtgJTaCEhtTdcH/mp50uU=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230926165653-79fcff283fc4 h1:UuXfC7b29RBDfMdLmggeF3opu3XuGi8bNT9SKZtZc3I=
+github.com/matrix-org/gomatrixserverlib v0.0.0-20230926165653-79fcff283fc4/go.mod h1:H9V9N3Uqn1bBJqYJNGK1noqtgJTaCEhtTdcH/mp50uU=
github.com/matrix-org/pinecone v0.11.1-0.20230810010612-ea4c33717fd7 h1:6t8kJr8i1/1I5nNttw6nn1ryQJgzVlBmSGgPiiaTdw4=
github.com/matrix-org/pinecone v0.11.1-0.20230810010612-ea4c33717fd7/go.mod h1:ReWMS/LoVnOiRAdq9sNUC2NZnd1mZkMNB52QhpTRWjg=
github.com/matrix-org/util v0.0.0-20221111132719-399730281e66 h1:6z4KxomXSIGWqhHcfzExgkH3Z3UkIXry4ibJS4Aqz2Y=
diff --git a/roomserver/internal/perform/perform_create_room.go b/roomserver/internal/perform/perform_create_room.go
index cd6629d2..eb8de781 100644
--- a/roomserver/internal/perform/perform_create_room.go
+++ b/roomserver/internal/perform/perform_create_room.go
@@ -90,7 +90,16 @@ func (c *Creator) PerformCreateRoom(ctx context.Context, userID spec.UserID, roo
} else {
senderID = spec.SenderID(userID.String())
}
- createContent["creator"] = senderID
+
+ // TODO: Maybe, at some point, GMSL should return the events to create, so we can define the version
+ // entirely there.
+ switch createRequest.RoomVersion {
+ case gomatrixserverlib.RoomVersionV11:
+ // RoomVersionV11 removed the creator field from the create content: https://github.com/matrix-org/matrix-spec-proposals/pull/2175
+ default:
+ createContent["creator"] = senderID
+ }
+
createContent["room_version"] = createRequest.RoomVersion
powerLevelContent := eventutil.InitialPowerLevelsContent(string(senderID))
joinRuleContent := gomatrixserverlib.JoinRuleContent{
diff --git a/sytest-whitelist b/sytest-whitelist
index 60ba0230..492c756b 100644
--- a/sytest-whitelist
+++ b/sytest-whitelist
@@ -787,4 +787,12 @@ Local device key changes get to remote servers with correct prev_id
HS provides query metadata
HS can provide query metadata on a single protocol
Invites over federation are correctly pushed
-Invites over federation are correctly pushed with name \ No newline at end of file
+Invites over federation are correctly pushed with name
+User can create and send/receive messages in a room with version 11
+local user can join room with version 11
+User can invite local user to room with version 11
+remote user can join room with version 11
+User can invite remote user to room with version 11
+Remote user can backfill in a room with version 11
+Can reject invites over federation for rooms with version 11
+Can receive redactions from regular users over federation in room version 11 \ No newline at end of file