diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py
index 5f85fec8020798a2045f89ff51fb946aaddd4546..99222b8f5d102c940d4ec0ef89f75ca94fbfd954 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 4eb9f0fe17a769402c4ba91b575ad8430c64b79e..d2b0bcbc3d4470f4c3d70790a7147d53038bf8e0 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()