Skip to content

Commit 277619b

Browse files
committed
block_all -> default_action
1 parent 7149ba1 commit 277619b

2 files changed

Lines changed: 15 additions & 14 deletions

File tree

synapse/storage/invite_rule.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,17 @@ def get_invite_rule(self, user_id: str) -> InviteRule:
136136

137137
@attr.s(slots=True, auto_attribs=True)
138138
class MSC4380InviteRulesConfig(InviteRulesConfig):
139-
block_all: bool
140-
"""If true, all invites are blocked."""
139+
default_invite_rule: InviteRule
140+
"""The invite rule to apply to all invites."""
141141

142142
@classmethod
143143
def from_account_data(cls, data: JsonMapping) -> "MSC4380InviteRulesConfig":
144-
block_all = data.get("block_all")
145-
if not isinstance(block_all, bool):
146-
block_all = False
144+
default = data.get("default_action")
147145

148-
return cls(block_all=block_all)
146+
default_invite_rule = (
147+
InviteRule.BLOCK if default == "block" else InviteRule.ALLOW
148+
)
149+
return cls(default_invite_rule=default_invite_rule)
149150

150151
def get_invite_rule(self, inviter_user_id: str) -> InviteRule:
151-
return InviteRule.BLOCK if self.block_all else InviteRule.ALLOW
152+
return self.default_invite_rule

tests/handlers/test_room_member.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ def test_misc4380_block_invite_local(self) -> None:
652652
self.bob,
653653
AccountDataTypes.MSC4380_INVITE_PERMISSION_CONFIG,
654654
{
655-
"block_all": True,
655+
"default_action": "block",
656656
},
657657
)
658658
)
@@ -670,16 +670,16 @@ def test_misc4380_block_invite_local(self) -> None:
670670
self.assertEqual(f.errcode, "ORG.MATRIX.MSC4155.M_INVITE_BLOCKED")
671671

672672
@override_config({"experimental_features": {"msc4380_enabled": True}})
673-
def test_misc4380_non_bool_setting(self) -> None:
674-
"""Test that `block_all` being set to something non-booly is the same as False."""
673+
def test_misc4380_non_string_setting(self) -> None:
674+
"""Test that `default_action` being set to something non-stringy is the same as "accept"."""
675675
room_id = self.helper.create_room_as(self.alice, tok=self.alice_token)
676676

677677
self.get_success(
678678
self.store.add_account_data_for_user(
679679
self.bob,
680680
AccountDataTypes.MSC4380_INVITE_PERMISSION_CONFIG,
681681
{
682-
"block_all": "True",
682+
"default_action": 1,
683683
},
684684
)
685685
)
@@ -695,15 +695,15 @@ def test_misc4380_non_bool_setting(self) -> None:
695695

696696
@override_config({"experimental_features": {"msc4380_enabled": False}})
697697
def test_msc4380_disabled_allow_invite_local(self) -> None:
698-
"""Test that MSC4380 will block a user from being invited to a room"""
698+
"""Test that, when MSC4380 is not enabled, invites are accepted as normal"""
699699
room_id = self.helper.create_room_as(self.alice, tok=self.alice_token)
700700

701701
self.get_success(
702702
self.store.add_account_data_for_user(
703703
self.bob,
704704
AccountDataTypes.MSC4380_INVITE_PERMISSION_CONFIG,
705705
{
706-
"block_all": True,
706+
"default_action": "block",
707707
},
708708
)
709709
)
@@ -728,7 +728,7 @@ def test_msc4380_block_invite_remote(self) -> None:
728728
self.store.add_account_data_for_user(
729729
self.bob,
730730
AccountDataTypes.MSC4380_INVITE_PERMISSION_CONFIG,
731-
{"block_all": True},
731+
{"default_action": "block"},
732732
)
733733
)
734734

0 commit comments

Comments
 (0)