mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-22 01:25:44 +03:00
Add an option to disable autojoin for guest accounts (#6637)
Fixes https://github.com/matrix-org/synapse/issues/3177
This commit is contained in:
parent
1bc00fd76d
commit
09099313e6
5 changed files with 33 additions and 1 deletions
1
changelog.d/6637.feature
Normal file
1
changelog.d/6637.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add an option to disable autojoining rooms for guest accounts.
|
|
@ -1223,6 +1223,13 @@ account_threepid_delegates:
|
||||||
#
|
#
|
||||||
#autocreate_auto_join_rooms: true
|
#autocreate_auto_join_rooms: true
|
||||||
|
|
||||||
|
# When auto_join_rooms is specified, setting this flag to false prevents
|
||||||
|
# guest accounts from being automatically joined to the rooms.
|
||||||
|
#
|
||||||
|
# Defaults to true.
|
||||||
|
#
|
||||||
|
#auto_join_rooms_for_guests: false
|
||||||
|
|
||||||
|
|
||||||
## Metrics ###
|
## Metrics ###
|
||||||
|
|
||||||
|
|
|
@ -128,6 +128,7 @@ class RegistrationConfig(Config):
|
||||||
if not RoomAlias.is_valid(room_alias):
|
if not RoomAlias.is_valid(room_alias):
|
||||||
raise ConfigError("Invalid auto_join_rooms entry %s" % (room_alias,))
|
raise ConfigError("Invalid auto_join_rooms entry %s" % (room_alias,))
|
||||||
self.autocreate_auto_join_rooms = config.get("autocreate_auto_join_rooms", True)
|
self.autocreate_auto_join_rooms = config.get("autocreate_auto_join_rooms", True)
|
||||||
|
self.auto_join_rooms_for_guests = config.get("auto_join_rooms_for_guests", True)
|
||||||
|
|
||||||
self.enable_set_displayname = config.get("enable_set_displayname", True)
|
self.enable_set_displayname = config.get("enable_set_displayname", True)
|
||||||
self.enable_set_avatar_url = config.get("enable_set_avatar_url", True)
|
self.enable_set_avatar_url = config.get("enable_set_avatar_url", True)
|
||||||
|
@ -368,6 +369,13 @@ class RegistrationConfig(Config):
|
||||||
# users cannot be auto-joined since they do not exist.
|
# users cannot be auto-joined since they do not exist.
|
||||||
#
|
#
|
||||||
#autocreate_auto_join_rooms: true
|
#autocreate_auto_join_rooms: true
|
||||||
|
|
||||||
|
# When auto_join_rooms is specified, setting this flag to false prevents
|
||||||
|
# guest accounts from being automatically joined to the rooms.
|
||||||
|
#
|
||||||
|
# Defaults to true.
|
||||||
|
#
|
||||||
|
#auto_join_rooms_for_guests: false
|
||||||
"""
|
"""
|
||||||
% locals()
|
% locals()
|
||||||
)
|
)
|
||||||
|
|
|
@ -244,7 +244,13 @@ class RegistrationHandler(BaseHandler):
|
||||||
fail_count += 1
|
fail_count += 1
|
||||||
|
|
||||||
if not self.hs.config.user_consent_at_registration:
|
if not self.hs.config.user_consent_at_registration:
|
||||||
yield defer.ensureDeferred(self._auto_join_rooms(user_id))
|
if not self.hs.config.auto_join_rooms_for_guests and make_guest:
|
||||||
|
logger.info(
|
||||||
|
"Skipping auto-join for %s because auto-join for guests is disabled",
|
||||||
|
user_id,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
yield defer.ensureDeferred(self._auto_join_rooms(user_id))
|
||||||
else:
|
else:
|
||||||
logger.info(
|
logger.info(
|
||||||
"Skipping auto-join for %s because consent is required at registration",
|
"Skipping auto-join for %s because consent is required at registration",
|
||||||
|
|
|
@ -135,6 +135,16 @@ class RegistrationTestCase(unittest.HomeserverTestCase):
|
||||||
self.handler.register_user(localpart="local_part"), ResourceLimitError
|
self.handler.register_user(localpart="local_part"), ResourceLimitError
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_auto_join_rooms_for_guests(self):
|
||||||
|
room_alias_str = "#room:test"
|
||||||
|
self.hs.config.auto_join_rooms = [room_alias_str]
|
||||||
|
self.hs.config.auto_join_rooms_for_guests = False
|
||||||
|
user_id = self.get_success(
|
||||||
|
self.handler.register_user(localpart="jeff", make_guest=True),
|
||||||
|
)
|
||||||
|
rooms = self.get_success(self.store.get_rooms_for_user(user_id))
|
||||||
|
self.assertEqual(len(rooms), 0)
|
||||||
|
|
||||||
def test_auto_create_auto_join_rooms(self):
|
def test_auto_create_auto_join_rooms(self):
|
||||||
room_alias_str = "#room:test"
|
room_alias_str = "#room:test"
|
||||||
self.hs.config.auto_join_rooms = [room_alias_str]
|
self.hs.config.auto_join_rooms = [room_alias_str]
|
||||||
|
|
Loading…
Reference in a new issue