summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
Diffstat (limited to 'synapse')
-rw-r--r--synapse/config/registration.py9
-rw-r--r--synapse/handlers/register.py30
2 files changed, 20 insertions, 19 deletions
diff --git a/synapse/config/registration.py b/synapse/config/registration.py
index 43ff20a637..4b9bf6f2d1 100644
--- a/synapse/config/registration.py
+++ b/synapse/config/registration.py
@@ -15,11 +15,10 @@
 
 from distutils.util import strtobool
 
-from synapse.config._base import ConfigError
 from synapse.types import RoomAlias
 from synapse.util.stringutils import random_string_with_symbols
 
-from ._base import Config
+from ._base import Config, ConfigError
 
 
 class RegistrationConfig(Config):
@@ -48,7 +47,7 @@ class RegistrationConfig(Config):
         self.auto_join_rooms = config.get("auto_join_rooms", [])
         for room_alias in self.auto_join_rooms:
             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)
 
     def default_config(self, **kwargs):
@@ -106,10 +105,10 @@ class RegistrationConfig(Config):
         #    - "#example:example.com"
 
         # Where auto_join_rooms are specified, setting this flag ensures that the
-        # the rooms exists by creating them when the first user on the
+        # the rooms exist by creating them when the first user on the
         # homeserver registers.
         # Setting to false means that if the rooms are not manually created,
-        # 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
         """ % locals()
 
diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py
index 2f7bdb0a20..1b5873c8d7 100644
--- a/synapse/handlers/register.py
+++ b/synapse/handlers/register.py
@@ -26,7 +26,6 @@ from synapse.api.errors import (
     RegistrationError,
     SynapseError,
 )
-from synapse.config._base import ConfigError
 from synapse.http.client import CaptchaServerHttpClient
 from synapse.types import RoomAlias, RoomID, UserID, create_requester
 from synapse.util.async_helpers import Linearizer
@@ -51,6 +50,7 @@ class RegistrationHandler(BaseHandler):
         self._auth_handler = hs.get_auth_handler()
         self.profile_handler = hs.get_profile_handler()
         self.user_directory_handler = hs.get_user_directory_handler()
+        self.room_creation_handler = self.hs.get_room_creation_handler()
         self.captcha_client = CaptchaServerHttpClient(hs)
 
         self._next_generated_user_id = None
@@ -231,21 +231,23 @@ class RegistrationHandler(BaseHandler):
         for r in self.hs.config.auto_join_rooms:
             try:
                 if should_auto_create_rooms:
-                    room_creation_handler = self.hs.get_room_creation_handler()
                     if self.hs.hostname != RoomAlias.from_string(r).domain:
-                        raise ConfigError(
-                            'Cannot create room alias %s, it does not match server domain'
+                        logger.warn(
+                            'Cannot create room alias %s, '
+                            'it does not match server domain' % (r,)
+                        )
+                        raise SynapseError()
+                    else:
+                        # create room expects the localpart of the room alias
+                        room_alias_localpart = RoomAlias.from_string(r).localpart
+                        yield self.room_creation_handler.create_room(
+                            fake_requester,
+                            config={
+                                "preset": "public_chat",
+                                "room_alias_name": room_alias_localpart
+                            },
+                            ratelimit=False,
                         )
-                    # create room expects the localpart of the room alias
-                    room_alias_localpart = RoomAlias.from_string(r).localpart
-                    yield room_creation_handler.create_room(
-                        fake_requester,
-                        config={
-                            "preset": "public_chat",
-                            "room_alias_name": room_alias_localpart
-                        },
-                        ratelimit=False,
-                    )
                 else:
                     yield self._join_user_to_room(fake_requester, r)
             except Exception as e: