summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2017-11-02 14:29:37 +0000
committerRichard van der Hoff <richard@matrix.org>2017-11-02 14:37:39 +0000
commit6b60f7dca01a8959bc87909dbb24680eb755ed1d (patch)
treeb4846fa327bbd7b86fcf5c190f474d308871cd65 /synapse
parentFactor _AccountHandler proxy out to ModuleApi (diff)
downloadsynapse-6b60f7dca01a8959bc87909dbb24680eb755ed1d.tar.xz
Add more hooks to ModuleApi
add `get_user_by_req` and `invalidate_access_token`
Diffstat (limited to 'synapse')
-rw-r--r--synapse/module_api/__init__.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/synapse/module_api/__init__.py b/synapse/module_api/__init__.py
index 9ccf6dfcd6..dc680ddf43 100644
--- a/synapse/module_api/__init__.py
+++ b/synapse/module_api/__init__.py
@@ -24,8 +24,26 @@ class ModuleApi(object):
         self.hs = hs
 
         self._store = hs.get_datastore()
+        self._auth = hs.get_auth()
         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):
         """Qualify a user id, if necessary
 
@@ -63,6 +81,22 @@ class ModuleApi(object):
         reg = self.hs.get_handlers().registration_handler
         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):
         """Run a function with a database connection