From de1e56054adddba574f5c672dbd830803d372112 Mon Sep 17 00:00:00 2001
From: Hangzhi Yu <hangzhi@protonmail.com>
Date: Wed, 10 Jul 2024 12:27:14 +0200
Subject: [PATCH] Add rule for fetching extra marks

---
 aleksis/apps/alsijil/rules.py              | 4 ++++
 aleksis/apps/alsijil/schema/extra_marks.py | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py
index 5f85fec80..99222b8f5 100644
--- a/aleksis/apps/alsijil/rules.py
+++ b/aleksis/apps/alsijil/rules.py
@@ -283,6 +283,10 @@ add_perm("alsijil.delete_excusetype_rule", delete_excusetype_predicate)
 view_extramarks_predicate = has_person & has_global_perm("alsijil.view_extramark")
 add_perm("alsijil.view_extramarks_rule", view_extramarks_predicate)
 
+# Fetch all extra marks
+fetch_extramarks_predicate = has_person
+add_perm("alsijil.fetch_extramarks_rule", fetch_extramarks_predicate)
+
 # Add extra mark
 add_extramark_predicate = view_extramarks_predicate & has_global_perm("alsijil.add_extramark")
 add_perm("alsijil.add_extramark_rule", add_extramark_predicate)
diff --git a/aleksis/apps/alsijil/schema/extra_marks.py b/aleksis/apps/alsijil/schema/extra_marks.py
index 4eb9f0fe1..d2b0bcbc3 100644
--- a/aleksis/apps/alsijil/schema/extra_marks.py
+++ b/aleksis/apps/alsijil/schema/extra_marks.py
@@ -27,8 +27,8 @@ class ExtraMarkType(
 
     @classmethod
     def get_queryset(cls, queryset, info):
-        if has_person(info.context.user):
-            return get_objects_for_user(info.context.user, "alsijil.view_extramark", queryset)
+        if info.context.user.has_perm("alsijil.fetch_extramarks_rule"):
+            return queryset
         raise PermissionDenied()
 
 
-- 
GitLab