summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Cloke <clokep@users.noreply.github.com>2023-03-14 08:18:49 -0400
committerGitHub <noreply@github.com>2023-03-14 08:18:49 -0400
commite7b559d2ca3d8ea11c32946bd1607078dc2873f8 (patch)
treede4cc2b786b29e6f010ee54f80a019f76bcf382a
parentMerge branch 'release-v1.79' into develop (diff)
downloadsynapse-e7b559d2ca3d8ea11c32946bd1607078dc2873f8.tar.xz
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.
-rw-r--r--changelog.d/15262.misc1
-rw-r--r--synapse/handlers/register.py10
2 files changed, 9 insertions, 2 deletions
diff --git a/changelog.d/15262.misc b/changelog.d/15262.misc
new file mode 100644
index 0000000000..d519f151c4
--- /dev/null
+++ b/changelog.d/15262.misc
@@ -0,0 +1 @@
+Skip processing of auto-join room behaviour if there are not auto-join rooms configured.
diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py
index e4e506e62c..6b110dcb6e 100644
--- a/synapse/handlers/register.py
+++ b/synapse/handlers/register.py
@@ -596,14 +596,20 @@ class RegistrationHandler:
         Args:
             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
 
         # 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
         # the user to create the room
         should_auto_create_rooms = False
-        is_real_user = await self.store.is_real_user(user_id)
-        if self.hs.config.registration.autocreate_auto_join_rooms and is_real_user:
+        if (
+            self.hs.config.registration.autocreate_auto_join_rooms
+            and await self.store.is_real_user(user_id)
+        ):
             count = await self.store.count_real_users()
             should_auto_create_rooms = count == 1