diff --git a/aleksis/apps/alsijil/util/predicates.py b/aleksis/apps/alsijil/util/predicates.py index 0afb920046c24e03e431950d610b2687467eb16c..41f8dbe0249bf9d27c0fd2d0231c6739e9ef0fbe 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