From b4c3648d1a3d746c9c67325adafa957f1adc80a9 Mon Sep 17 00:00:00 2001
From: Hangzhi Yu <hangzhi@protonmail.com>
Date: Sat, 16 Mar 2024 01:20:05 +0100
Subject: [PATCH] Change evaluation order in coursebook predicates

---
 aleksis/apps/alsijil/util/predicates.py | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py
index 615142a89..c27796e4a 100644
--- a/aleksis/apps/alsijil/util/predicates.py
+++ b/aleksis/apps/alsijil/util/predicates.py
@@ -387,18 +387,18 @@ def is_lesson_event_group_owner(user: User, obj: LessonEvent):
 def can_view_documentation(user: User, obj: Documentation):
     """Predicate which checks if the user is allowed to view a documentation."""
     if obj:
-        if obj.course:
-            return (
-                is_course_teacher(user, obj.course)
-                | is_course_member(user, obj.course)
-                | is_course_group_owner(user, obj.course)
-            )
         if obj.lesson_event:
             return (
                 is_lesson_event_teacher(user, obj.lesson_event)
                 | is_lesson_event_member(user, obj.lesson_event)
                 | is_lesson_event_group_owner(user, obj.lesson_event)
             )
+        if obj.course:
+            return (
+                is_course_teacher(user, obj.course)
+                | is_course_member(user, obj.course)
+                | is_course_group_owner(user, obj.course)
+            )
     return False
 
 
@@ -406,10 +406,10 @@ def can_view_documentation(user: User, obj: Documentation):
 def can_edit_documentation(user: User, obj: Documentation):
     """Predicate which checks if the user is allowed to edit or delete a documentation."""
     if obj:
-        if obj.course:
-            return is_course_teacher(user, obj.course) | is_course_group_owner(user, obj.course)
         if obj.lesson_event:
             return is_lesson_event_teacher(user, obj.lesson_event) | is_lesson_event_group_owner(
                 user, obj.lesson_event
             )
+        if obj.course:
+            return is_course_teacher(user, obj.course) | is_course_group_owner(user, obj.course)
     return False
-- 
GitLab