From a17f9241f4fee6b701f6c17e05f9f72ae1070e54 Mon Sep 17 00:00:00 2001 From: Sli Date: Wed, 9 Sep 2026 14:35:44 +0200 Subject: [PATCH] Fix ue comment view permission --- pedagogy/models.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pedagogy/models.py b/pedagogy/models.py index 84f6bab4..cb3a9bd9 100644 --- a/pedagogy/models.py +++ b/pedagogy/models.py @@ -26,6 +26,7 @@ from django.conf import settings from django.core import validators from django.db import models from django.db.models import Exists, OuterRef +from django.db.models.query_utils import Q from django.urls import reverse from django.utils import timezone from django.utils.functional import cached_property @@ -159,7 +160,15 @@ class UECommentQuerySet(models.QuerySet): # so he can view non-moderated comments return self if user.has_perm("pedagogy.view_uecomment"): - return self.filter(reports=None) + return self.filter( + Q(reports=None) + | Q(author=user) + | Q( + reports__in=UECommentReport.objects.filter( + comment=OuterRef("pk"), reporter__in=[user] + ).all() + ) + ).distinct() return self.filter(author=user) def annotate_is_reported(self) -> Self: @@ -261,7 +270,7 @@ class UEResult(models.Model): class UECommentReport(models.Model): - """Report an inapropriate comment.""" + """Report an inappropriate comment.""" comment = models.ForeignKey( UEComment,