Skip to content

Commit 56d468b

Browse files
committed
Prevent deleted users from logging in
1 parent 508e446 commit 56d468b

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

h/services/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def fetch_for_login(self, username_or_email):
155155

156156
user = self.session.query(User).filter(*filters).one_or_none()
157157

158-
if user is None:
158+
if user is None or user.deleted:
159159
return None
160160

161161
if not user.is_activated:

tests/unit/h/services/user_test.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,16 @@ def test_fetch_for_login_by_email_not_activated(self, svc):
7777
with pytest.raises(UserNotActivated):
7878
svc.fetch_for_login("[email protected]")
7979

80+
def test_fetch_for_login_by_username_deleted(self, svc, factories):
81+
user = factories.User(deleted=True)
82+
83+
assert svc.fetch_for_login(user.username) is None
84+
85+
def test_fetch_for_login_by_email_deleted(self, svc, factories):
86+
user = factories.User(deleted=True)
87+
88+
assert svc.fetch_for_login(user.email) is None
89+
8090
def test_update_preferences_tutorial_enable(self, svc, factories):
8191
user = factories.User.build(sidebar_tutorial_dismissed=True)
8292

0 commit comments

Comments
 (0)