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( 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")