diff options
author | Matthew Hodgson <matthew@matrix.org> | 2018-01-19 00:53:58 +0000 |
---|---|---|
committer | Matthew Hodgson <matthew@matrix.org> | 2018-01-19 00:53:58 +0000 |
commit | 9d332e0f797e4f302a08b3708df4ac8b42b08216 (patch) | |
tree | 8f6907437554b375be442217045632c9bf889096 /synapse/handlers | |
parent | fix pep8 (diff) | |
download | synapse-9d332e0f797e4f302a08b3708df4ac8b42b08216.tar.xz |
fix up v1, and improve errors
Diffstat (limited to 'synapse/handlers')
-rw-r--r-- | synapse/handlers/register.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/synapse/handlers/register.py b/synapse/handlers/register.py index 5b808beac1..157ebaf251 100644 --- a/synapse/handlers/register.py +++ b/synapse/handlers/register.py @@ -15,6 +15,7 @@ """Contains functions for registering clients.""" import logging +import re from twisted.internet import defer @@ -293,7 +294,7 @@ class RegistrationHandler(BaseHandler): """ for c in threepidCreds: - logger.info("validating theeepidcred sid %s on id server %s", + logger.info("validating threepidcred sid %s on id server %s", c['sid'], c['idServer']) try: identity_handler = self.hs.get_handlers().identity_handler @@ -307,6 +308,16 @@ class RegistrationHandler(BaseHandler): logger.info("got threepid with medium '%s' and address '%s'", threepid['medium'], threepid['address']) + for constraint in self.hs.config.registrations_require_3pid: + if ( + constraint['medium'] == 'email' and + threepid['medium'] == 'email' and + re.match(constraint['pattern'], threepid['address']) + ): + raise RegistrationError( + 403, "Third party identifier is not allowed" + ) + @defer.inlineCallbacks def bind_emails(self, user_id, threepidCreds): """Links emails with a user ID and informs an identity server. |