def get_object(self, queryset=None): post = super(EditPostView, self).get_object(queryset) if not perms.may_access_post(self.request, post): raise PermissionDenied if not perms.may_edit_post(self.request.user, post): raise PermissionDenied return post
def get_redirect_url(self, **kwargs): post = get_object_or_404(Post, pk=self.kwargs['pk']) if not perms.may_access_post(self.request, self.post): raise PermissionDenied if not perms.may_moderate_topic(self.request.user, post.topic): raise PermissionDenied post.on_moderation = False post.save() return post.get_absolute_url()
def get_object(self, queryset=None): post = get_object_or_404(Post.objects.select_related('topic', 'topic__forum'), pk=self.kwargs['pk']) if not perms.may_access_post(self.request, self.post): raise PermissionDenied if not perms.may_delete_post(self.request.user, post): raise PermissionDenied self.topic = post.topic self.forum = post.topic.forum if not perms.may_moderate_topic(self.request.user, self.topic): raise PermissionDenied return post
def dispatch(self, request, *args, **kwargs): self.post = self.get_post(**kwargs) if not perms.may_access_post(self.request, self.post): raise PermissionDenied return super(PostView, self).dispatch(request, *args, **kwargs)