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
|
||||
|
||||
# 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 ###
|
||||
|
||||
|
|
|
@ -128,6 +128,7 @@ class RegistrationConfig(Config):
|
|||
if not RoomAlias.is_valid(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.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_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.
|
||||
#
|
||||
#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()
|
||||
)
|
||||
|
|
|
@ -244,7 +244,13 @@ class RegistrationHandler(BaseHandler):
|
|||
fail_count += 1
|
||||
|
||||
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:
|
||||
logger.info(
|
||||
"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
|
||||
)
|
||||
|
||||
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):
|
||||
room_alias_str = "#room:test"
|
||||
self.hs.config.auto_join_rooms = [room_alias_str]
|
||||
|
|
Loading…
Reference in a new issue