From 561cb7047e4aa0686d1186be436c1860d9759a28 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 7 Jul 2020 16:09:30 +0200 Subject: [PATCH 5/5] sessions: unlog inactive users (#42428) --- tests/test_sessions.py | 8 ++++++++ wcs/qommon/sessions.py | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/test_sessions.py b/tests/test_sessions.py index c5352ae9..51f23edc 100644 --- a/tests/test_sessions.py +++ b/tests/test_sessions.py @@ -208,3 +208,11 @@ def test_session_clean_job(pub, user, app, freezer): freezer.move_to(datetime.datetime.now() + datetime.timedelta(5)) # last usage limit pub.clean_sessions() assert pub.session_manager.session_class.count() == 0 + + +def test_inactive_user(pub, user, app): + login(app, username='foo', password='foo') + assert 'Logout' in app.get('/') + user.is_active = False + user.store() + assert 'Logout' not in app.get('/') diff --git a/wcs/qommon/sessions.py b/wcs/qommon/sessions.py index c75abbdc..6d45d542 100644 --- a/wcs/qommon/sessions.py +++ b/wcs/qommon/sessions.py @@ -215,12 +215,13 @@ class Session(QommonSession, CaptchaSession, StorableObject): user.anonymous = True user.name_identifiers = [ self.name_identifier ] user.lasso_dump = self.lasso_anonymous_identity_dump - return user else: try: - return get_publisher().user_class.get(user_id) + user = get_publisher().user_class.get(user_id) except KeyError: - pass + return None + if user.is_active: + return user return None def set_user(self, user_id): -- 2.26.2