Skip to content

matthiask/django-tinyforum

Repository files navigation

django-tinyforum

https://travis-ci.org/matthiask/django-tinyforum.svg?branch=master

Add your own URLconf module:

from functools import wraps

from django.conf.urls import url
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect
from django.utils.translation import gettext as _

from tinyforum import views


def moderator_required(fn):
    @login_required
    def view(request, *args, **kwargs):
        if not request.user.is_staff:
            messages.error(request, _("You do not have moderation powers."))
            return redirect("tinyforum:thread-list")
        return fn(request, *args, **kwargs)

    return view


def add_is_moderator(fn):
    @wraps(fn)
    def dec(request, *args, **kwargs):
        # kwargs["is_moderator"] = request.user.profile.has_moderation_powers
        kwargs["is_moderator"] = request.user.is_staff
        return fn(request, *args, **kwargs)

    return dec


app_name = "tinyforum"
urlpatterns = [
    url(r"^$", views.thread_list, name="thread-list"),
    url(
        r"^create/$",
        login_required(add_is_moderator(views.thread_form)),
        name="thread-create",
    ),
    url(r"^(?P<pk>[0-9]+)/$", views.post_list, name="thread-detail"),
    url(
        r"^(?P<pk>[0-9]+)/update/$",
        login_required(add_is_moderator(views.thread_form)),
        name="thread-update",
    ),
    url(r"^(?P<pk>[0-9]+)/star/$", views.thread_star, name="thread-star"),
    url(
        r"^post/(?P<pk>[0-9]+)/update/$",
        login_required(add_is_moderator(views.post_form)),
        name="post-update",
    ),
    url(
        r"^post/(?P<pk>[0-9]+)/report/$",
        login_required(views.post_report),
        name="post-report",
    ),
    url(r"^moderation/$", moderator_required(views.report_list), name="report-list"),
    url(
        r"^moderation/(?P<pk>[0-9]+)/$",
        moderator_required(views.report_handle),
        name="report-handle",
    ),
]

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •