Example #1
0
 def get_redirect_url(self, **kwargs):
     post = get_object_or_404(Post.objects.all(), pk=self.kwargs['pk'])
     if not perms.may_view_post(self.request.user, post):
         raise PermissionDenied
     count = post.topic.posts.filter(created__lt=post.created).count() + 1
     page = math.ceil(count / float(defaults.PYBB_TOPIC_PAGE_SIZE))
     return '%s?page=%d#post-%d' % (reverse('pybb:topic', args=[post.topic.id]), page, post.id)
Example #2
0
 def get_redirect_url(self, **kwargs):
     post = get_object_or_404(Post.objects.all(), pk=self.kwargs['pk'])
     if not perms.may_view_post(self.request.user, post):
         raise PermissionDenied
     count = post.topic.posts.filter(created__lt=post.created).count() + 1
     page = math.ceil(count / float(defaults.PYBB_TOPIC_PAGE_SIZE))
     return '%s?page=%d#post-%d' % (reverse('pybb:topic', args=[post.topic.id]), page, post.id)
Example #3
0
 def get_redirect_url(self, **kwargs):
     if not perms.may_view_post(self.request.user, self.post):
         raise PermissionDenied
     count = self.post.topic.posts.filter(
         created__lt=self.post.created).count() + 1
     page = math.ceil(count / float(defaults.PYBB_TOPIC_PAGE_SIZE))
     return '%s?page=%d#post-%d' % (self.post.topic.get_absolute_url(),
                                    page, self.post.id)
Example #4
0
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            self.user = request.user
        else:
            if defaults.PYBB_ENABLE_ANONYMOUS_POST:
                self.user, new = User.objects.get_or_create(
                    **{username_field: defaults.PYBB_ANONYMOUS_USERNAME})
            else:
                from django.contrib.auth.views import redirect_to_login
                return redirect_to_login(request.get_full_path())

        self.forum = None
        self.topic = None
        if 'forum_id' in kwargs:
            self.forum = get_object_or_404(perms.filter_forums(
                request.user, Forum.objects.all()),
                                           pk=kwargs['forum_id'])
            if not perms.may_create_topic(self.user, self.forum):
                raise PermissionDenied
        elif 'topic_id' in kwargs:
            self.topic = get_object_or_404(perms.filter_topics(
                request.user, Topic.objects.all()),
                                           pk=kwargs['topic_id'])
            if not perms.may_create_post(self.user, self.topic):
                raise PermissionDenied

            self.quote = ''
            if 'quote_id' in request.GET:
                try:
                    quote_id = int(request.GET.get('quote_id'))
                except TypeError:
                    raise Http404
                else:
                    post = get_object_or_404(Post, pk=quote_id)
                    if not perms.may_view_post(request.user, post):
                        raise PermissionDenied
                    profile = util.get_pybb_profile(post.user)
                    self.quote = util._get_markup_quoter(defaults.PYBB_MARKUP)(
                        post.body, profile.get_display_name())

                if self.quote and request.is_ajax():
                    return HttpResponse(self.quote)
        return super(AddPostView, self).dispatch(request, *args, **kwargs)
Example #5
0
File: views.py Project: JTLX/pybbm
    def dispatch(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            self.user = request.user
        else:
            if defaults.PYBB_ENABLE_ANONYMOUS_POST:
                self.user, new = User.objects.get_or_create(**{username_field: defaults.PYBB_ANONYMOUS_USERNAME})
            else:
                from django.contrib.auth.views import redirect_to_login

                return redirect_to_login(request.get_full_path())

        self.forum = None
        self.topic = None
        if "forum_id" in kwargs:
            self.forum = get_object_or_404(
                perms.filter_forums(request.user, Forum.objects.all()), pk=kwargs["forum_id"]
            )
            if not perms.may_create_topic(self.user, self.forum):
                raise PermissionDenied
        elif "topic_id" in kwargs:
            self.topic = get_object_or_404(
                perms.filter_topics(request.user, Topic.objects.all()), pk=kwargs["topic_id"]
            )
            if not perms.may_create_post(self.user, self.topic):
                raise PermissionDenied

            self.quote = ""
            if "quote_id" in request.GET:
                try:
                    quote_id = int(request.GET.get("quote_id"))
                except TypeError:
                    raise Http404
                else:
                    post = get_object_or_404(Post, pk=quote_id)
                    if not perms.may_view_post(request.user, post):
                        raise PermissionDenied
                    profile = util.get_pybb_profile(post.user)
                    self.quote = util._get_markup_quoter(defaults.PYBB_MARKUP)(post.body, profile.get_display_name())

                if self.quote and request.is_ajax():
                    return HttpResponse(self.quote)
        return super(AddPostView, self).dispatch(request, *args, **kwargs)
Example #6
0
File: views.py Project: JTLX/pybbm
 def get_redirect_url(self, **kwargs):
     if not perms.may_view_post(self.request.user, self.post):
         raise PermissionDenied
     count = self.post.topic.posts.filter(created__lt=self.post.created).count() + 1
     page = math.ceil(count / float(defaults.PYBB_TOPIC_PAGE_SIZE))
     return "%s?page=%d#post-%d" % (self.post.topic.get_absolute_url(), page, self.post.id)