Add more hooks to ModuleApi

add `get_user_by_req` and `invalidate_access_token`
This commit is contained in:
Richard van der Hoff 2017-11-02 14:29:37 +00:00
parent 1189be43a2
commit 6b60f7dca0

View file

@ -24,8 +24,26 @@ class ModuleApi(object):
self.hs = hs self.hs = hs
self._store = hs.get_datastore() self._store = hs.get_datastore()
self._auth = hs.get_auth()
self._auth_handler = auth_handler self._auth_handler = auth_handler
def get_user_by_req(self, req, allow_guest=False):
"""Check the access_token provided for a request
Args:
req (twisted.web.server.Request): Incoming HTTP request
allow_guest (bool): True if guest users should be allowed. If this
is False, and the access token is for a guest user, an
AuthError will be thrown
Returns:
twisted.internet.defer.Deferred[synapse.types.Requester]:
the requester for this request
Raises:
synapse.api.errors.AuthError: if no user by that token exists,
or the token is invalid.
"""
return self._auth.get_user_by_req(req, allow_guest)
def get_qualified_user_id(self, username): def get_qualified_user_id(self, username):
"""Qualify a user id, if necessary """Qualify a user id, if necessary
@ -63,6 +81,22 @@ class ModuleApi(object):
reg = self.hs.get_handlers().registration_handler reg = self.hs.get_handlers().registration_handler
return reg.register(localpart=localpart) return reg.register(localpart=localpart)
def invalidate_access_token(self, access_token):
"""Invalidate an access token for a user
Args:
access_token(str): access token
Returns:
twisted.internet.defer.Deferred - resolves once the access token
has been removed.
Raises:
synapse.api.errors.AuthError: the access token is invalid
"""
return self._auth_handler.delete_access_token(access_token)
def run_db_interaction(self, desc, func, *args, **kwargs): def run_db_interaction(self, desc, func, *args, **kwargs):
"""Run a function with a database connection """Run a function with a database connection