From 9d213db65b09a0462ad6893c0c403ca3c7d7a61b Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson <frjo@xdeb.org> Date: Tue, 12 May 2020 09:45:02 +0200 Subject: [PATCH] Use UserPassesTestMixin for ReviewLeaderboard. --- hypha/apply/funds/views.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/hypha/apply/funds/views.py b/hypha/apply/funds/views.py index 9b951f00c..7c232b945 100644 --- a/hypha/apply/funds/views.py +++ b/hypha/apply/funds/views.py @@ -1187,21 +1187,12 @@ class SubmissionResultView(FilterView): @method_decorator(login_required, name='dispatch') -class ReviewLeaderboard(SingleTableMixin, FilterView): +class ReviewLeaderboard(UserPassesTestMixin, SingleTableMixin, FilterView): filterset_class = LeaderboardFilter table_class = LeaderboardTable table_pagination = False template_name = 'funds/review_leaderboard.html' - def dispatch(self, request, *args, **kwargs): - is_staff = request.user.is_apply_staff - is_reviewer = request.user.is_reviewer - - if not (is_staff or is_reviewer): - raise PermissionDenied - - return super().dispatch(request, *args, **kwargs) - def get_table_data(self): ninety_days_ago = timezone.now() - timedelta(days=90) this_year = timezone.now().year @@ -1214,3 +1205,6 @@ class ReviewLeaderboard(SingleTableMixin, FilterView): last_year=Count('assignedreviewers__review', filter=Q(assignedreviewers__review__created_at__year=last_year)), # most_recent=Subquery(latest_reviews.values('id')[:1]) ) + + def test_func(self): + return self.request.user.is_apply_staff or self.request.user.is_reviewer -- GitLab