Skip to content

Commit 4e3bf73

Browse files
committed
Refined Access.
Fixes #325
1 parent 3804832 commit 4e3bf73

File tree

4 files changed

+17
-1
lines changed

4 files changed

+17
-1
lines changed

vms/administrator/utils.py

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from functools import wraps
2+
from django.shortcuts import render
3+
4+
def admin_required(func):
5+
@wraps(func)
6+
def wrapped_view(request, *args, **kwargs):
7+
admin = getattr(request.user, 'administrator', None)
8+
if not admin:
9+
return render(request, 'vms/no_admin_rights.html')
10+
return func(request, *args, **kwargs)
11+
return wrapped_view

vms/administrator/views.py

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from django.views.generic.edit import FormView, UpdateView
1414
from django.views.generic import View
1515
from administrator.models import Administrator
16+
from administrator.utils import admin_required
1617
from django.utils.decorators import method_decorator
1718

1819

@@ -81,6 +82,7 @@ def post(self, request, *args, **kwargs):
8182

8283

8384
@login_required
85+
@admin_required
8486
def settings(request):
8587
user = request.user
8688
admin = None

vms/registration/views.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from django.http import HttpResponseRedirect
44
from django.shortcuts import render
55
from braces.views import LoginRequiredMixin, AnonymousRequiredMixin
6+
from administrator.views import AdministratorLoginRequiredMixin
67
from django.views.generic.edit import FormView
78
from django.views.generic import TemplateView
89
from django.core.urlresolvers import reverse_lazy
@@ -16,7 +17,7 @@
1617
from administrator.models import *
1718

1819

19-
class AdministratorSignupView(TemplateView):
20+
class AdministratorSignupView(AdministratorLoginRequiredMixin, TemplateView):
2021
"""
2122
Administrator and Volunteer signup is implemented as a TemplateView that
2223
displays the signup form.

vms/volunteer/views.py

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from django.views.generic.detail import DetailView
1111
from django.views.generic import ListView
1212
from braces.views import LoginRequiredMixin, AnonymousRequiredMixin
13+
from administrator.utils import admin_required
1314
from organization.services import *
1415
from shift.services import *
1516
from event.services import get_signed_up_events_for_volunteer
@@ -162,6 +163,7 @@ def post(self, request, *args, **kwargs):
162163
'job_list': job_list, 'event_list': event_list, 'selected_event': event_name,
163164
'selected_job': job_name})
164165
@login_required
166+
@admin_required
165167
def search(request):
166168
if request.method == 'POST':
167169
form = SearchVolunteerForm(request.POST)

0 commit comments

Comments
 (0)