From 5c8c1f170c76926f0d5013f9fff4363f5a43a445 Mon Sep 17 00:00:00 2001 From: Shamil K Muhammed <noteness@disroot.org> Date: Mon, 10 Jul 2017 22:47:32 +0530 Subject: [PATCH] Use the `with` statement on the connection object Before, v.0.0.3, the connection was reinitialized everytime a new auth request was sent to the module. But after that version, things changed and a single connection was used. This caused #2. It was because the transactions weren't commited before querying again. Which stops the auth provider from getting new data. So, the context manager is also used on the connection everytime a query is sent to ensure the transactions are committed. So, hopefully this commit fixes #2 --- diaspora_auth_provider.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/diaspora_auth_provider.py b/diaspora_auth_provider.py index 5ab5004..a6a00ad 100644 --- a/diaspora_auth_provider.py +++ b/diaspora_auth_provider.py @@ -22,13 +22,13 @@ import bcrypt import logging -__VERSION__ = "0.0.4" +__VERSION__ = "0.0.5" logger = logging.getLogger(__name__) class DiasporaAuthProvider: - __version__ = "0.0.4" + __version__ = "0.0.5" def __init__(self, config, account_handler): self.account_handler = account_handler @@ -55,15 +55,16 @@ class DiasporaAuthProvider: local_part = user_id.split(':', 1)[0][1:] logger.info("Checking if user {} exists.".format(local_part)) try: - with self.connection.cursor() as cursor: - yield threads.deferToThread( # Don't think this is needed, but w/e - cursor.execute, - "SELECT username, encrypted_password FROM users WHERE username=%s", - (local_part,) - ) - user = yield threads.deferToThread( - cursor.fetchone - ) + with self.connection: + with self.connection.cursor() as cursor: + yield threads.deferToThread( # Don't think this is needed, but w/e + cursor.execute, + "SELECT username, encrypted_password FROM users WHERE username=%s", + (local_part,) + ) + user = yield threads.deferToThread( + cursor.fetchone + ) # check if the user exists. if not user: logger.info("User {} does not exist. Rejecting auth request".format(local_part)) -- GitLab