From 9427c1d8b5005a425cd1d34378f5dab135de3106 Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 29 Apr 2021 23:01:39 +0100 Subject: [PATCH] . --- generic/views.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/generic/views.py b/generic/views.py index 7e229610..1ad0c0db 100644 --- a/generic/views.py +++ b/generic/views.py @@ -145,6 +145,16 @@ class ExamViews(View, LoginRequiredMixin): self.question_type = question_type self.loadJsonAnswer = loadJsonAnswer + def check_user_access(user): + if self.app_name == "rapids" and not user.groups.filter(name='rapid_checker').exists(): + return False + if self.app_name == "anatomy" and not user.groups.filter(name='anatomy_checker').exists(): + return False + if self.app_name == "longs" and not user.groups.filter(name='long_checker').exists(): + return False + return True + + @method_decorator(login_required) def exam_toggle_results_published(self, request, pk): if request.is_ajax() and request.method == "POST": @@ -200,11 +210,7 @@ class ExamViews(View, LoginRequiredMixin): def exam_list(self, request): exams = self.Exam.objects.filter(exam_mode=True) - if self.app_name == "rapids" and not request.user.groups.filter(name='rapid_checker').exists(): - raise PermissionDenied - if self.app_name == "anatomy" and not request.user.groups.filter(name='anatomy_checker').exists(): - raise PermissionDenied - if self.app_name == "longs" and not request.user.groups.filter(name='long_checker').exists(): + if not self.check_user_access(request.user) raise PermissionDenied return render(request, "{}/exam_list.html".format(self.app_name), {"exams": exams})