summary refs log tree commit diff
diff options
context:
space:
mode:
authorMathieu Velten <matmaul@gmail.com>2021-01-18 17:58:51 +0100
committerGitHub <noreply@github.com>2021-01-18 17:58:51 +0100
commit09276e023b6d69b89c347966ab2b4ab1d8110e6e (patch)
tree693cfa0e8beaf23e14bef63b7f459972ea1335a1
parentMerge pull request #75 from matrix-org/anoa/dinsic_release_1_24_0 (diff)
downloadsynapse-09276e023b6d69b89c347966ab2b4ab1d8110e6e.tar.xz
Change check_3pid_allowed to async (#76)
-rw-r--r--synapse/util/threepids.py23
1 files changed, 10 insertions, 13 deletions
diff --git a/synapse/util/threepids.py b/synapse/util/threepids.py

index cfdaa1c5d9..63f955acff 100644 --- a/synapse/util/threepids.py +++ b/synapse/util/threepids.py
@@ -16,13 +16,10 @@ import logging import re -from twisted.internet import defer - logger = logging.getLogger(__name__) -@defer.inlineCallbacks -def check_3pid_allowed(hs, medium, address): +async def check_3pid_allowed(hs, medium, address): """Checks whether a given 3PID is allowed to be used on this HS Args: @@ -31,11 +28,11 @@ def check_3pid_allowed(hs, medium, address): address (str): address within that medium (e.g. "wotan@matrix.org") msisdns need to first have been canonicalised Returns: - defered bool: whether the 3PID medium/address is allowed to be added to this HS + bool: whether the 3PID medium/address is allowed to be added to this HS """ if hs.config.check_is_for_allowed_local_3pids: - data = yield hs.get_simple_http_client().get_json( + data = await hs.get_simple_http_client().get_json( "https://%s%s" % ( hs.config.check_is_for_allowed_local_3pids, @@ -46,20 +43,20 @@ def check_3pid_allowed(hs, medium, address): # Check for invalid response if "hs" not in data and "shadow_hs" not in data: - defer.returnValue(False) + return False # Check if this user is intended to register for this homeserver if ( data.get("hs") != hs.config.server_name and data.get("shadow_hs") != hs.config.server_name ): - defer.returnValue(False) + return False if data.get("requires_invite", False) and not data.get("invited", False): # Requires an invite but hasn't been invited - defer.returnValue(False) + return False - defer.returnValue(True) + return True if hs.config.allowed_local_3pids: for constraint in hs.config.allowed_local_3pids: @@ -73,11 +70,11 @@ def check_3pid_allowed(hs, medium, address): if medium == constraint["medium"] and re.match( constraint["pattern"], address ): - defer.returnValue(True) + return True else: - defer.returnValue(True) + return True - defer.returnValue(False) + return False def canonicalise_email(address: str) -> str: