From a3a5fa698e89ba98ca86d50ebe517b44cc5df9b9 Mon Sep 17 00:00:00 2001 From: Aiq0 <66842415+Aiq0@users.noreply.github.com> Date: Wed, 9 Sep 2026 12:06:57 +0200 Subject: [PATCH 1/2] feat: log profile views --- trojstenid/profiles/views.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/trojstenid/profiles/views.py b/trojstenid/profiles/views.py index 11db96a..23b5a82 100644 --- a/trojstenid/profiles/views.py +++ b/trojstenid/profiles/views.py @@ -6,6 +6,7 @@ from django.views.generic import DetailView, TemplateView from PIL import ImageColor +from trojstenid import audit from trojstenid.badges.models import Badge from trojstenid.users.groups import VEDUCI_GROUP from trojstenid.users.models import User @@ -55,6 +56,8 @@ def get_context_data(self, **kwargs): ctx["show_details"] = self.request.user.groups.filter( name=VEDUCI_GROUP ).exists() + if ctx["show_details"]: + audit.log(self.request, f"viewed profile of {user.username}") ctx["groups"] = user.groups.values_list("name", flat=True) ctx["VEDUCI_GROUP"] = VEDUCI_GROUP ctx["badges"] = Badge.objects.filter(badgeassignment__user=user).select_related( From 25ebbaa5cc750e52a49401089a4cf0e4701f0f1f Mon Sep 17 00:00:00 2001 From: Aiq0 <66842415+Aiq0@users.noreply.github.com> Date: Wed, 9 Sep 2026 12:07:19 +0200 Subject: [PATCH 2/2] feat: log user login was removed in 31567e57ea0c2f371f6de7522ffeb95740399ed3 (#103) --- trojstenid/users/signals.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/trojstenid/users/signals.py b/trojstenid/users/signals.py index afc0dec..02fd3de 100644 --- a/trojstenid/users/signals.py +++ b/trojstenid/users/signals.py @@ -3,6 +3,7 @@ from allauth.account.models import EmailAddress from allauth.account.signals import email_confirmed, user_logged_out from allauth.socialaccount.models import SocialAccount +from django.contrib.auth.signals import user_logged_in from django.contrib.auth.signals import ( user_logged_out as dj_user_logged_out, ) @@ -30,6 +31,11 @@ def sync_groups_after_confirm(request, email_address: EmailAddress, **kwargs): sync_groups.delay() +@receiver([user_logged_in]) +def log_user_login(request, user: User, **kwargs): + audit.log(request, "logged in") + + @receiver([user_logged_out, dj_user_logged_out]) def log_user_logout(request, user: User, **kwargs): audit.log(request, "logged out")