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