From 7d3e2ec7f24b00d88462c4155dee36a793b28fd7 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 23 Jun 2015 19:46:50 +0200 Subject: [PATCH] Refs #39 -- Hide links from users without permission --- src/pretix/control/middleware.py | 6 +- .../templates/pretixcontrol/event/base.html | 206 +++++++++--------- .../templates/pretixcontrol/order/index.html | 46 ++-- src/pretix/plugins/banktransfer/signals.py | 2 + 4 files changed, 139 insertions(+), 121 deletions(-) diff --git a/src/pretix/control/middleware.py b/src/pretix/control/middleware.py index 34d966899a..0893775196 100644 --- a/src/pretix/control/middleware.py +++ b/src/pretix/control/middleware.py @@ -7,7 +7,7 @@ from django.contrib.auth import REDIRECT_FIELD_NAME from django.http import HttpResponseNotFound from django.utils.translation import ugettext as _ -from pretix.base.models import Event, Organizer +from pretix.base.models import Event, Organizer, EventPermission class PermissionMiddleware: @@ -54,6 +54,10 @@ class PermissionMiddleware: permitted__id__exact=request.user.id, organizer__slug=url.kwargs['organizer'], ).select_related('organizer')[0] + request.eventperm = EventPermission.objects.current.get( + event=request.event, + user=request.user + ) request.organizer = request.event.organizer except IndexError: return HttpResponseNotFound(_("The selected event was not found or you " diff --git a/src/pretix/control/templates/pretixcontrol/event/base.html b/src/pretix/control/templates/pretixcontrol/event/base.html index 83b7e5ec23..60ce6b41bc 100644 --- a/src/pretix/control/templates/pretixcontrol/event/base.html +++ b/src/pretix/control/templates/pretixcontrol/event/base.html @@ -9,104 +9,114 @@ {% trans "Dashboard" %} -
  • - - - {% trans "Settings" %} - - - -
  • -
  • - - - {% trans "Products" %} - - - -
  • -
  • - - - {% trans "Orders" %} - - - -
  • + {% if request.eventperm.can_change_settings or request.eventperm.can_change_permissions %} +
  • + + + {% trans "Settings" %} + + + +
  • + {% endif %} + {% if request.eventperm.can_change_items %} +
  • + + + {% trans "Products" %} + + + +
  • + {% endif %} + {% if request.eventperm.can_view_orders %} +
  • + + + {% trans "Orders" %} + + + +
  • + {% endif %} {% for nav in nav_event %}
  • diff --git a/src/pretix/control/templates/pretixcontrol/order/index.html b/src/pretix/control/templates/pretixcontrol/order/index.html index 9a7092c5ad..713565141c 100644 --- a/src/pretix/control/templates/pretixcontrol/order/index.html +++ b/src/pretix/control/templates/pretixcontrol/order/index.html @@ -12,29 +12,31 @@ {% endblocktrans %} {% include "pretixcontrol/orders/fragment_order_status.html" with order=order class="pull-right" %} - {% if order.status == 'n' or order.status == 'p' %} -
    - {% csrf_token %} -