Browse Source

Allow jump to deleted but known post.

Rafał Pitoń 11 years ago
parent
commit
b5a33ff8a6
2 changed files with 6 additions and 1 deletions
  1. 5 0
      misago/acl/permissions/threads.py
  2. 1 1
      misago/apps/threadtype/jumps.py

+ 5 - 0
misago/acl/permissions/threads.py

@@ -175,6 +175,11 @@ class ThreadsACL(BaseACL):
         if post.deleted and not (forum_role['can_delete_posts'] or (user.is_authenticated() and user == post.user)):
         if post.deleted and not (forum_role['can_delete_posts'] or (user.is_authenticated() and user == post.user)):
             raise ACLError404()
             raise ACLError404()
 
 
+    def allow_post_jump(self, user, thread, post):
+        forum_role = self.acl[thread.forum_id]
+        if post.moderated and not (forum_role['can_approve'] or (user.is_authenticated() and user == post.user)):
+            raise ACLError404()
+
     def filter_threads(self, request, forum, queryset):
     def filter_threads(self, request, forum, queryset):
         try:
         try:
             forum_role = self.get_role(forum)
             forum_role = self.get_role(forum)

+ 1 - 1
misago/apps/threadtype/jumps.py

@@ -25,7 +25,7 @@ class JumpView(ViewBase):
 
 
     def fetch_post(self, post):
     def fetch_post(self, post):
         self.post = self.thread.post_set.get(pk=post)
         self.post = self.thread.post_set.get(pk=post)
-        self.request.acl.threads.allow_post_view(self.request.user, self.thread, self.post)
+        self.request.acl.threads.allow_post_jump(self.request.user, self.thread, self.post)
 
 
     def make_jump(self):
     def make_jump(self):
         raise NotImplementedError('JumpView cannot be called directly.')
         raise NotImplementedError('JumpView cannot be called directly.')