diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2018-05-18 11:28:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-18 11:28:04 +0100 |
commit | 6d9dc671391dadb75e8c0d860c7f1eb3e27681ec (patch) | |
tree | 55fd9ea0d7aadde8829adaf270a69f72363d360b /synapse/handlers/register.py | |
parent | Merge pull request #3235 from matrix-org/rav/fix_receipts_deferred (diff) | |
parent | Better docstrings (diff) | |
download | synapse-6d9dc671391dadb75e8c0d860c7f1eb3e27681ec.tar.xz |
Merge pull request #3232 from matrix-org/rav/server_notices_room
Infrastructure for a server notices room
Diffstat (limited to 'synapse/handlers/register.py')
-rw-r--r-- | synapse/handlers/register.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py index f83c6b3cf8..7e52adda3c 100644 --- a/synapse/handlers/register.py +++ b/synapse/handlers/register.py @@ -34,6 +34,11 @@ logger = logging.getLogger(__name__) class RegistrationHandler(BaseHandler): def __init__(self, hs): + """ + + Args: + hs (synapse.server.HomeServer): + """ super(RegistrationHandler, self).__init__(hs) self.auth = hs.get_auth() @@ -49,6 +54,7 @@ class RegistrationHandler(BaseHandler): self._generate_user_id_linearizer = Linearizer( name="_generate_user_id_linearizer", ) + self._server_notices_mxid = hs.config.server_notices_mxid @defer.inlineCallbacks def check_username(self, localpart, guest_access_token=None, @@ -338,6 +344,14 @@ class RegistrationHandler(BaseHandler): yield identity_handler.bind_threepid(c, user_id) def check_user_id_not_appservice_exclusive(self, user_id, allowed_appservice=None): + # don't allow people to register the server notices mxid + if self._server_notices_mxid is not None: + if user_id == self._server_notices_mxid: + raise SynapseError( + 400, "This user ID is reserved.", + errcode=Codes.EXCLUSIVE + ) + # valid user IDs must not clash with any user ID namespaces claimed by # application services. services = self.store.get_app_services() |