summary refs log tree commit diff
path: root/synapse/storage/data_stores/main/openid.py
diff options
context:
space:
mode:
authorHubert Chathi <hubert@uhoreg.ca>2019-10-24 22:31:25 -0400
committerHubert Chathi <hubert@uhoreg.ca>2019-10-24 22:31:25 -0400
commitc40d7244f8e07538a7ab25c255e803bc54fb7cb3 (patch)
treea502c6063ce25bb2ddaa479a7ce64d705e52b261 /synapse/storage/data_stores/main/openid.py
parentdon't error if federation query doesn't have cross-signing keys (diff)
parentMerge pull request #6248 from matrix-org/erikj/move_schema_files (diff)
downloadsynapse-c40d7244f8e07538a7ab25c255e803bc54fb7cb3.tar.xz
Merge branch 'develop' into cross-signing_federation
Diffstat (limited to 'synapse/storage/data_stores/main/openid.py')
-rw-r--r--synapse/storage/data_stores/main/openid.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/synapse/storage/data_stores/main/openid.py b/synapse/storage/data_stores/main/openid.py
new file mode 100644
index 0000000000..79b40044d9
--- /dev/null
+++ b/synapse/storage/data_stores/main/openid.py
@@ -0,0 +1,31 @@
+from synapse.storage._base import SQLBaseStore
+
+
+class OpenIdStore(SQLBaseStore):
+    def insert_open_id_token(self, token, ts_valid_until_ms, user_id):
+        return self._simple_insert(
+            table="open_id_tokens",
+            values={
+                "token": token,
+                "ts_valid_until_ms": ts_valid_until_ms,
+                "user_id": user_id,
+            },
+            desc="insert_open_id_token",
+        )
+
+    def get_user_id_for_open_id_token(self, token, ts_now_ms):
+        def get_user_id_for_token_txn(txn):
+            sql = (
+                "SELECT user_id FROM open_id_tokens"
+                " WHERE token = ? AND ? <= ts_valid_until_ms"
+            )
+
+            txn.execute(sql, (token, ts_now_ms))
+
+            rows = txn.fetchall()
+            if not rows:
+                return None
+            else:
+                return rows[0][0]
+
+        return self.runInteraction("get_user_id_for_token", get_user_id_for_token_txn)