diff options
author | Mark Haines <mjark@negativecurvature.net> | 2016-05-05 19:26:30 +0100 |
---|---|---|
committer | Mark Haines <mjark@negativecurvature.net> | 2016-05-05 19:26:30 +0100 |
commit | 1f590f3e9abf25c70078055ba68a99cd5970a4d2 (patch) | |
tree | fe56d6d34f0d57a707e65a7327b587e81265a951 /synapse/storage/openid.py | |
parent | Merge pull request #762 from matrix-org/erikj/report_event (diff) | |
parent | Rename openid/token to openid/request_token (diff) | |
download | synapse-1f590f3e9abf25c70078055ba68a99cd5970a4d2.tar.xz |
Merge pull request #765 from matrix-org/markjh/open_id
Add an openidish mechanism for proving that you own a given user_id
Diffstat (limited to 'synapse/storage/openid.py')
-rw-r--r-- | synapse/storage/openid.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/synapse/storage/openid.py b/synapse/storage/openid.py new file mode 100644 index 0000000000..5dabb607bd --- /dev/null +++ b/synapse/storage/openid.py @@ -0,0 +1,32 @@ +from ._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 + ) |