Avoid unneeded work if auto-join rooms aren't configured. (#15262)

It is not necessary to reach out to the database to check some
parameters if the auto-join rooms are not configured, or (in some cases)
if auto-create rooms is not configured.
This commit is contained in:
Patrick Cloke 2023-03-14 08:18:49 -04:00 committed by GitHub
parent a1c9869394
commit e7b559d2ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 2 deletions

1
changelog.d/15262.misc Normal file
View File

@ -0,0 +1 @@
Skip processing of auto-join room behaviour if there are not auto-join rooms configured.

View File

@ -596,14 +596,20 @@ class RegistrationHandler:
Args: Args:
user_id: The user to join user_id: The user to join
""" """
# If there are no rooms to auto-join, just bail.
if not self.hs.config.registration.auto_join_rooms:
return
# auto-join the user to any rooms we're supposed to dump them into # auto-join the user to any rooms we're supposed to dump them into
# try to create the room if we're the first real user on the server. Note # try to create the room if we're the first real user on the server. Note
# that an auto-generated support or bot user is not a real user and will never be # that an auto-generated support or bot user is not a real user and will never be
# the user to create the room # the user to create the room
should_auto_create_rooms = False should_auto_create_rooms = False
is_real_user = await self.store.is_real_user(user_id) if (
if self.hs.config.registration.autocreate_auto_join_rooms and is_real_user: self.hs.config.registration.autocreate_auto_join_rooms
and await self.store.is_real_user(user_id)
):
count = await self.store.count_real_users() count = await self.store.count_real_users()
should_auto_create_rooms = count == 1 should_auto_create_rooms = count == 1