summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
Diffstat (limited to 'synapse')
-rw-r--r--synapse/config/registration.py5
-rw-r--r--synapse/handlers/room_member.py5
2 files changed, 10 insertions, 0 deletions
diff --git a/synapse/config/registration.py b/synapse/config/registration.py

index e5c0ccb2af..8faf5b62e2 100644 --- a/synapse/config/registration.py +++ b/synapse/config/registration.py
@@ -40,6 +40,7 @@ class RegistrationConfig(Config): self.disable_3pid_changes = config.get("disable_3pid_changes", False) + self.enable_3pid_lookup = config.get("enable_3pid_lookup", True) self.registration_shared_secret = config.get("registration_shared_secret") self.register_mxid_from_3pid = config.get("register_mxid_from_3pid") self.register_just_use_email_for_display_name = config.get( @@ -146,6 +147,10 @@ class RegistrationConfig(Config): # #disable_3pid_changes: False + # Enable 3PIDs lookup requests to identity servers from this server. + # + #enable_3pid_lookup: true + # If set, allows registration of standard or admin accounts by anyone who # has the shared secret, even if registration is otherwise disabled. # diff --git a/synapse/handlers/room_member.py b/synapse/handlers/room_member.py
index 382fe3a449..04ece8f4ce 100644 --- a/synapse/handlers/room_member.py +++ b/synapse/handlers/room_member.py
@@ -71,6 +71,7 @@ class RoomMemberHandler(object): self.spam_checker = hs.get_spam_checker() self._server_notices_mxid = self.config.server_notices_mxid self.rewrite_identity_server_urls = self.config.rewrite_identity_server_urls + self._enable_lookup = hs.config.enable_3pid_lookup @abc.abstractmethod def _remote_join(self, requester, remote_room_hosts, room_id, user, content): @@ -808,6 +809,10 @@ class RoomMemberHandler(object): Returns: str: the matrix ID of the 3pid, or None if it is not recognized. """ + if not self._enable_lookup: + raise SynapseError( + 403, "Looking up third-party identifiers is denied from this server", + ) try: target = self._get_id_server_target(id_server) data = yield self.simple_http_client.get_json(