From 5acf994c1a73e2e20aee6bd5a03dec7d8e0ce4c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Fri, 8 Dec 2017 17:08:33 +0100 Subject: [PATCH] access control for the control panel might be a good idea --- src/c3nav/control/views.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/c3nav/control/views.py b/src/c3nav/control/views.py index 07f72dc3..dce8792e 100644 --- a/src/c3nav/control/views.py +++ b/src/c3nav/control/views.py @@ -1,5 +1,19 @@ +from functools import wraps + +from django.contrib.auth.decorators import login_required +from django.core.exceptions import PermissionDenied from django.shortcuts import render +def control_panel_view(func): + @wraps(func) + def wrapped_func(self, request, *args, **kwargs): + if not request.user_permissions.control_panel: + raise PermissionDenied + return func(self, request, *args, **kwargs) + return login_required(login_url='site.login')(wrapped_func) + + +@control_panel_view def main_index(request): return render(request, 'control/index.html', {})