forked from MirrorHub/synapse
Restricted rooms (MSC3083) should not have their allow key redacted. (#10489)
This commit is contained in:
parent
c3b037795a
commit
752fe0cd98
3 changed files with 46 additions and 0 deletions
1
changelog.d/10489.feature
Normal file
1
changelog.d/10489.feature
Normal file
|
@ -0,0 +1 @@
|
|||
Update support for [MSC3083](https://github.com/matrix-org/matrix-doc/pull/3083) to consider changes in the MSC around which servers can issue join events.
|
|
@ -109,6 +109,8 @@ def prune_event_dict(room_version: RoomVersion, event_dict: dict) -> dict:
|
|||
add_fields("creator")
|
||||
elif event_type == EventTypes.JoinRules:
|
||||
add_fields("join_rule")
|
||||
if room_version.msc3083_join_rules:
|
||||
add_fields("allow")
|
||||
elif event_type == EventTypes.PowerLevels:
|
||||
add_fields(
|
||||
"users",
|
||||
|
|
|
@ -301,6 +301,49 @@ class PruneEventTestCase(unittest.TestCase):
|
|||
room_version=RoomVersions.MSC2176,
|
||||
)
|
||||
|
||||
def test_join_rules(self):
|
||||
"""Join rules events have changed behavior starting with MSC3083."""
|
||||
self.run_test(
|
||||
{
|
||||
"type": "m.room.join_rules",
|
||||
"event_id": "$test:domain",
|
||||
"content": {
|
||||
"join_rule": "invite",
|
||||
"allow": [],
|
||||
"other_key": "stripped",
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "m.room.join_rules",
|
||||
"event_id": "$test:domain",
|
||||
"content": {"join_rule": "invite"},
|
||||
"signatures": {},
|
||||
"unsigned": {},
|
||||
},
|
||||
)
|
||||
|
||||
# After MSC3083, alias events have no special behavior.
|
||||
self.run_test(
|
||||
{
|
||||
"type": "m.room.join_rules",
|
||||
"content": {
|
||||
"join_rule": "invite",
|
||||
"allow": [],
|
||||
"other_key": "stripped",
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "m.room.join_rules",
|
||||
"content": {
|
||||
"join_rule": "invite",
|
||||
"allow": [],
|
||||
},
|
||||
"signatures": {},
|
||||
"unsigned": {},
|
||||
},
|
||||
room_version=RoomVersions.MSC3083,
|
||||
)
|
||||
|
||||
|
||||
class SerializeEventTestCase(unittest.TestCase):
|
||||
def serialize(self, ev, fields):
|
||||
|
|
Loading…
Reference in a new issue