mirror of
https://github.com/element-hq/synapse
synced 2024-08-19 03:20:52 +00:00
@cached() annotate get_user_by_token() - achieves a minor DB performance improvement
This commit is contained in:
parent
1489521ee5
commit
93978c5e2b
2 changed files with 7 additions and 2 deletions
|
@ -388,7 +388,7 @@ class Auth(object):
|
|||
AuthError if no user by that token exists or the token is invalid.
|
||||
"""
|
||||
try:
|
||||
ret = yield self.store.get_user_by_token(token=token)
|
||||
ret = yield self.store.get_user_by_token(token)
|
||||
if not ret:
|
||||
raise StoreError(400, "Unknown token")
|
||||
user_info = {
|
||||
|
|
|
@ -19,7 +19,7 @@ from sqlite3 import IntegrityError
|
|||
|
||||
from synapse.api.errors import StoreError, Codes
|
||||
|
||||
from ._base import SQLBaseStore
|
||||
from ._base import SQLBaseStore, cached
|
||||
|
||||
|
||||
class RegistrationStore(SQLBaseStore):
|
||||
|
@ -91,6 +91,11 @@ class RegistrationStore(SQLBaseStore):
|
|||
"get_user_by_id", self.cursor_to_dict, query, user_id
|
||||
)
|
||||
|
||||
@cached()
|
||||
# TODO(paul): Currently there's no code to invalidate this cache. That
|
||||
# means if/when we ever add internal ways to invalidate access tokens or
|
||||
# change whether a user is a server admin, those will need to invoke
|
||||
# store.get_user_by_token.invalidate(token)
|
||||
def get_user_by_token(self, token):
|
||||
"""Get a user from the given access token.
|
||||
|
||||
|
|
Loading…
Reference in a new issue