diff --git a/aleksis/apps/alsijil/model_extensions.py b/aleksis/apps/alsijil/model_extensions.py
index c5502d54e666f6446c257c99b88d229c8051e1e6..a2c9b8dc7984f7896c60f0c6439542eebb98ccc7 100644
--- a/aleksis/apps/alsijil/model_extensions.py
+++ b/aleksis/apps/alsijil/model_extensions.py
@@ -11,6 +11,7 @@ from calendarweek import CalendarWeek
 from aleksis.apps.alsijil.managers import PersonalNoteQuerySet
 from aleksis.apps.chronos.models import Event, ExtraLesson, LessonPeriod
 from aleksis.core.models import Group, Person
+from aleksis.core.util.core_helpers import get_site_preferences
 
 from .models import ExcuseType, ExtraMark, LessonDocumentation, PersonalNote
 
@@ -385,8 +386,16 @@ def get_groups_with_lessons(cls: Group):
 def get_owner_groups_with_lessons(self: Person):
     """Get all groups the person is an owner of and which have related lessons.
 
-    Groups which have child groups with related lessons are also included.
+    Groups which have child groups with related lessons are also included, as well as all
+    child groups of the groups owned by the person with related lessons if the
+    inherit_privileges_from_parent_group preference is turned on.
     """
+    if get_site_preferences()["alsijil__inherit_privileges_from_parent_group"]:
+        return (
+            Group.get_groups_with_lessons()
+            .filter(Q(owners=self) | Q(parent_groups__owners=self))
+            .distinct()
+        )
     return Group.get_groups_with_lessons().filter(owners=self).distinct()