diff --git a/h/services/user.py b/h/services/user.py index c434bc1882c..a33bce54a16 100644 --- a/h/services/user.py +++ b/h/services/user.py @@ -155,7 +155,7 @@ def fetch_for_login(self, username_or_email): user = self.session.query(User).filter(*filters).one_or_none() - if user is None: + if user is None or user.deleted: return None if not user.is_activated: diff --git a/tests/unit/h/services/user_test.py b/tests/unit/h/services/user_test.py index f7fee96a3b9..78fdfa72d9e 100644 --- a/tests/unit/h/services/user_test.py +++ b/tests/unit/h/services/user_test.py @@ -77,6 +77,16 @@ def test_fetch_for_login_by_email_not_activated(self, svc): with pytest.raises(UserNotActivated): svc.fetch_for_login("mirthe@deboer.com") + def test_fetch_for_login_by_username_deleted(self, svc, factories): + user = factories.User(deleted=True) + + assert svc.fetch_for_login(user.username) is None + + def test_fetch_for_login_by_email_deleted(self, svc, factories): + user = factories.User(deleted=True) + + assert svc.fetch_for_login(user.email) is None + def test_update_preferences_tutorial_enable(self, svc, factories): user = factories.User.build(sidebar_tutorial_dismissed=True)