Browse Source

Show reported private threads to PT moderators. #35

Ralfp 12 years ago
parent
commit
22d10a70f0
2 changed files with 8 additions and 2 deletions
  1. 6 1
      misago/apps/privatethreads/list.py
  2. 2 1
      misago/apps/privatethreads/mixins.py

+ 6 - 1
misago/apps/privatethreads/list.py

@@ -12,7 +12,12 @@ class ThreadsListView(ThreadsListBaseView, ThreadsListModeration, TypeMixin):
         self.forum = Forum.objects.get(special='private_threads')
 
     def threads_queryset(self):
-        return self.forum.thread_set.filter(participants__id=self.request.user.pk).order_by('-last')
+        qs_threads = self.forum.thread_set.filter(participants__id=self.request.user.pk).order_by('-last')
+        if self.request.acl.private_threads.is_mod():
+            qs_reported = self.forum.thread_set.filter(replies_reported__gt=0)
+            qs_threads = qs_threads | qs_reported
+            qs_threads = qs_threads.distinct()
+        return qs_threads
 
     def fetch_threads(self):
         qs_threads = self.threads_queryset()

+ 2 - 1
misago/apps/privatethreads/mixins.py

@@ -12,7 +12,8 @@ class TypeMixin(object):
     def check_permissions(self):
         try:
             if self.thread.pk:
-                if not self.request.user in self.thread.participants.all():
+                if not ((self.thread.replies_reported > 0 and self.request.acl.private_threads.is_mod())
+                        or (self.request.user in self.thread.participants.all())):
                     raise ACLError404()
         except AttributeError:
             pass