From 9d252bb2d5623df5912b85d945c32be15db41b7c Mon Sep 17 00:00:00 2001
From: Hangzhi Yu <hangzhi@protonmail.com>
Date: Wed, 11 Dec 2024 10:55:16 +0100
Subject: [PATCH] Fix documentation perm check for amended lessons

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

diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py
index 0afb92004..41f8dbe02 100644
--- a/aleksis/apps/alsijil/util/predicates.py
+++ b/aleksis/apps/alsijil/util/predicates.py
@@ -193,6 +193,7 @@ def is_lesson_event_group_owner(user: User, obj: LessonEvent):
     Checks whether the person linked to the user is a owner of any group
     (or their respective parent groups) linked to the lesson event,
     or a owner of any group linked to the course, if the lesson event has one.
+    Also checks for groups linked to the lesson being amended, if one exists.
     """
     if obj:
         for g in obj.groups.all():
@@ -201,6 +202,13 @@ def is_lesson_event_group_owner(user: User, obj: LessonEvent):
             for pg in g.parent_groups.all():
                 if user.person in pg.owners.all():
                     return True
+        if obj.amends:
+            for g in obj.amends.groups.all():
+                if user.person in g.owners.all():
+                    return True
+                for pg in g.parent_groups.all():
+                    if user.person in pg.owners.all():
+                        return True
     return False
 
 
-- 
GitLab