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()