From f995674f8805b950e2e464f6213b0344547628da Mon Sep 17 00:00:00 2001 From: Ross Date: Fri, 7 Jan 2022 11:16:01 +0000 Subject: [PATCH] . --- generic/views.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/generic/views.py b/generic/views.py index 2eb84496..325e9194 100644 --- a/generic/views.py +++ b/generic/views.py @@ -66,6 +66,15 @@ import plotly.express as px from django.db.models import Prefetch +class CidManagerRequiredMixin(object): + def get_object(self, *args, **kwargs): + obj = super().get_object(*args, **kwargs) + if self.request.user.groups.filter(name="cid_user_manager").exists(): + return obj + if self.request.user not in obj.author.all(): + raise PermissionDenied() # or Http404 + return obj + def normaliseRapidsScore(score): if score == 49: return 4.5 @@ -1264,7 +1273,7 @@ class ExaminationAutocomplete(autocomplete.Select2QuerySetView): return qs -class CidUserView(LoginRequiredMixin, SingleTableMixin, FilterView): +class CidUserView(CidManagerRequiredMixin, SingleTableMixin, FilterView): model = CidUser table_class = CidUserTable template_name = "generic/cid_view.html"