From 5827e976fe1f7ac5aa9123d2167fe80c2d9de1ca Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Fri, 15 Mar 2019 11:55:51 +0000 Subject: Fixups --- synapse/api/auth.py | 6 ++++++ synapse/handlers/profile.py | 22 +++++++++++++--------- synapse/util/threepids.py | 5 ++++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/synapse/api/auth.py b/synapse/api/auth.py index 03dd99fcd0..a1593325f6 100644 --- a/synapse/api/auth.py +++ b/synapse/api/auth.py @@ -523,6 +523,12 @@ class Auth(object): def get_appservice_by_req(self, request): (user_id, app_service) = self._get_appservice_user_id(request) + if not app_service: + raise AuthError( + self.TOKEN_NOT_FOUND_HTTP_STATUS, + "Unrecognised access token.", + errcode=Codes.UNKNOWN_TOKEN, + ) request.authenticated_entity = app_service.sender return app_service diff --git a/synapse/handlers/profile.py b/synapse/handlers/profile.py index 0a952dab97..2313379c58 100644 --- a/synapse/handlers/profile.py +++ b/synapse/handlers/profile.py @@ -20,6 +20,8 @@ from signedjson.sign import sign_json from twisted.internet import defer, reactor +from six.moves import range + from synapse.api.errors import ( AuthError, CodeMessageException, @@ -100,7 +102,7 @@ class BaseProfileHandler(BaseHandler): if repl_host not in host_batches: host_batches[repl_host] = -1 try: - for i in xrange(host_batches[repl_host] + 1, latest_batch + 1): + for i in range(host_batches[repl_host] + 1, latest_batch + 1): yield self._replicate_host_profile_batch(repl_host, i) except Exception: logger.exception( @@ -272,14 +274,16 @@ class BaseProfileHandler(BaseHandler): @defer.inlineCallbacks def set_active(self, target_user, active, hide): """ - Sets the 'active' flag on a user profile. If set to false, the user account is - considered deactivated or hidden. - If 'hide' is true, then we interpret active=False as a request to try to hide the - user rather than deactivating it. This means withholding the profile from replication - (and mark it as inactive) rather than clearing the profile from the HS DB. - Note that unlike set_displayname and set_avatar_url, this does *not* perform - authorization checks! This is because the only place it's used currently is - in account deactivation where we've already done these checks anyway. + Sets the 'active' flag on a user profile. If set to false, the user + account is considered deactivated or hidden. + + If 'hide' is true, then we interpret active=False as a request to try to + hide the user rather than deactivating it. This means withholding the + profile from replication (and mark it as inactive) rather than clearing + the profile from the HS DB. Note that unlike set_displayname and + set_avatar_url, this does *not* perform authorization checks! This is + because the only place it's used currently is in account deactivation + where we've already done these checks anyway. """ if len(self.hs.config.replicate_user_profiles_to) > 0: cur_batchnum = yield self.store.get_latest_profile_replication_batch_number() diff --git a/synapse/util/threepids.py b/synapse/util/threepids.py index 84c56109ca..e48c6201d0 100644 --- a/synapse/util/threepids.py +++ b/synapse/util/threepids.py @@ -48,7 +48,10 @@ def check_3pid_allowed(hs, medium, address): defer.returnValue(False) # Check if this user is intended to register for this homeserver - if data['hs'] != hs.config.server_name and data['shadow_hs'] != hs.config.server_name: + if ( + data['hs'] != hs.config.server_name + and data['shadow_hs'] != hs.config.server_name + ): defer.returnValue(False) if data.get('requires_invite', False) and not data.get('invited', False): -- cgit 1.5.1