From a6cf105977f95dcd8ca3ae6428b061b2ab027429 Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Mon, 13 Jan 2025 01:50:26 +0100 Subject: [PATCH] Adapt coursebook printing permissions --- aleksis/apps/alsijil/rules.py | 25 ++++++++++++------------- aleksis/apps/alsijil/views.py | 2 +- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/aleksis/apps/alsijil/rules.py b/aleksis/apps/alsijil/rules.py index bea6bb7fc..93db2dd87 100644 --- a/aleksis/apps/alsijil/rules.py +++ b/aleksis/apps/alsijil/rules.py @@ -52,19 +52,6 @@ register_absence_predicate = has_person & ( ) add_perm("alsijil.register_absence_rule", register_absence_predicate) -# View full register for group -view_full_register_predicate = has_person & ( - is_group_owner - | ( - is_parent_group_owner - & is_site_preference_set("alsijil", "inherit_privileges_from_parent_group") - ) - | has_global_perm("alsijil.view_full_register") - | has_object_perm("core.view_full_register_group") -) -add_perm("alsijil.view_full_register_rule", view_full_register_predicate) - - # View extra mark list view_extramarks_predicate = has_person & has_global_perm("alsijil.view_extramark") add_perm("alsijil.view_extramarks_rule", view_extramarks_predicate) @@ -171,6 +158,18 @@ view_documentations_for_group_predicate = has_person & ( ) add_perm("alsijil.view_documentations_for_group_rule", view_documentations_for_group_predicate) +print_documentations_for_group_predicate = has_person & ( + has_global_perm("alsijil.view_all_coursebooks") + | has_global_perm("alsijil.view_full_register") + | is_group_owner + | ( + is_parent_group_owner + & is_site_preference_set("alsijil", "inherit_privileges_from_parent_group") + ) + | has_object_perm("core.view_full_register_group") +) +add_perm("alsijil.print_documentations_for_group_rule", print_documentations_for_group_predicate) + view_documentations_menu_predicate = has_person add_perm("alsijil.view_documentations_menu_rule", view_documentations_menu_predicate) diff --git a/aleksis/apps/alsijil/views.py b/aleksis/apps/alsijil/views.py index 71b4cbdd6..8cf6f512a 100644 --- a/aleksis/apps/alsijil/views.py +++ b/aleksis/apps/alsijil/views.py @@ -54,7 +54,7 @@ def full_register_for_group(request: HttpRequest, ids: str) -> HttpResponse: groups = [] for id_ in ids: group = get_object_or_404(Group, pk=id_) - if not request.user.has_perm("alsijil.view_full_register_rule", group): + if not request.user.has_perm("alsijil.print_documentations_for_group_rule", group): raise PermissionDenied() groups.append(group) -- GitLab