diff options
author | Erik Johnston <erik@matrix.org> | 2019-05-30 13:33:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-30 13:33:44 +0100 |
commit | 45f5d8f3fd80ab4f077dfde98a4ff442560e3904 (patch) | |
tree | 0421f014f45f6fd3de80453096662d6fc8d02edb /synapse/rest/client/v1 | |
parent | Remove spurious debug from MatrixFederationHttpClient.get_json (#5287) (diff) | |
parent | Lint (diff) | |
download | synapse-45f5d8f3fd80ab4f077dfde98a4ff442560e3904.tar.xz |
Merge pull request #5256 from aaronraimist/logout-correct-error
Show correct error when logging out and access token is missing
Diffstat (limited to 'synapse/rest/client/v1')
-rw-r--r-- | synapse/rest/client/v1/logout.py | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/synapse/rest/client/v1/logout.py b/synapse/rest/client/v1/logout.py index 430c692336..ba20e75033 100644 --- a/synapse/rest/client/v1/logout.py +++ b/synapse/rest/client/v1/logout.py @@ -17,8 +17,6 @@ import logging from twisted.internet import defer -from synapse.api.errors import AuthError - from .base import ClientV1RestServlet, client_path_patterns logger = logging.getLogger(__name__) @@ -38,23 +36,16 @@ class LogoutRestServlet(ClientV1RestServlet): @defer.inlineCallbacks def on_POST(self, request): - try: - requester = yield self.auth.get_user_by_req(request) - except AuthError: - # this implies the access token has already been deleted. - defer.returnValue((401, { - "errcode": "M_UNKNOWN_TOKEN", - "error": "Access Token unknown or expired" - })) + requester = yield self.auth.get_user_by_req(request) + + if requester.device_id is None: + # the acccess token wasn't associated with a device. + # Just delete the access token + access_token = self._auth.get_access_token_from_request(request) + yield self._auth_handler.delete_access_token(access_token) else: - if requester.device_id is None: - # the acccess token wasn't associated with a device. - # Just delete the access token - access_token = self._auth.get_access_token_from_request(request) - yield self._auth_handler.delete_access_token(access_token) - else: - yield self._device_handler.delete_device( - requester.user.to_string(), requester.device_id) + yield self._device_handler.delete_device( + requester.user.to_string(), requester.device_id) defer.returnValue((200, {})) |