2 Commits

Author SHA1 Message Date
thomas girod 847511d27f Merge pull request #1441 from ae-utbm/fix-barman-login
fix: session not properly updated on counter login
2026-06-29 10:26:29 +02:00
imperosol a75d5e06b6 fix: session not properly updated on counter login
Fixes #1440
2026-06-24 22:22:34 +02:00
2 changed files with 23 additions and 0 deletions
+22
View File
@@ -886,6 +886,28 @@ class TestBarmanConnection(TestCase):
)
assert response.status_code == 403
def test_logout_then_login(self):
"""Test that the login is successful if it is after a previous logout.
This is a regression test for #1440
"""
self.client.post( # login
self.login_url, {"username": self.barman.username, "password": "plop"}
)
self.client.post( # logout
reverse("counter:logout", kwargs={"counter_id": self.counter.id}),
data={"user_id": self.barman.id},
)
response = self.client.post( # and re-login
self.login_url, {"username": self.barman.username, "password": "plop"}
)
assert response.status_code == 200
assert response.headers["HX-Redirect"] == self.detail_url
response = self.client.get(
self.detail_url, {"username": self.barman.username, "password": "plop"}
)
assert self.barman in response.wsgi_request.barmen
@pytest.mark.django_db
def test_barman_timeout(client: Client):
+1
View File
@@ -61,6 +61,7 @@ class CounterLoginFragment(FragmentMixin, SingleObjectMixin, FormView):
user = form.get_user()
perm = self.object.permanencies.create(user=user, start=timezone.now())
self.request.session.setdefault(SESSION_PERMANENCES_KEY, []).append(perm.id)
self.request.session.modified = True
self.success_url = reverse(
"counter:details", kwargs={"counter_id": self.object.id}
)