Only check the join rule on room creation if an access rule is also provided

pull/5760/head
Brendan Abolivier 2019-07-25 10:03:36 +02:00
parent 0bb375c124
commit dd92685179
No known key found for this signature in database
GPG Key ID: 1E015C145F1916CD
1 changed files with 11 additions and 11 deletions

View File

@ -122,18 +122,18 @@ class RoomAccessRules(object):
if event["type"] == EventTypes.JoinRules:
join_rule = event["content"].get("join_rule")
if join_rule == JoinRules.PUBLIC and access_rule != ACCESS_RULE_RESTRICTED:
raise SynapseError(400, "Invalid access rule")
if access_rule:
if join_rule == JoinRules.PUBLIC and access_rule != ACCESS_RULE_RESTRICTED:
raise SynapseError(400, "Invalid access rule")
if (
preset == RoomCreationPreset.PUBLIC_CHAT
and access_rule != ACCESS_RULE_RESTRICTED
):
raise SynapseError(400, "Invalid access rule")
# If there's no rules event in the initial state, create one with the default
# setting.
if not access_rule:
if (
preset == RoomCreationPreset.PUBLIC_CHAT
and access_rule != ACCESS_RULE_RESTRICTED
):
raise SynapseError(400, "Invalid access rule")
else:
# If there's no rules event in the initial state, create one with the default
# setting.
if is_direct:
default_rule = ACCESS_RULE_DIRECT
else: