From 2f733ee5213472f9598593bd437d004a65bc4963 Mon Sep 17 00:00:00 2001
From: Michael Bauer <michael-bauer@posteo.de>
Date: Fri, 16 Feb 2024 11:29:21 +0100
Subject: [PATCH 1/2] Resolve groups for owner

Group owner does not necessary (= by default) have the core.view_group
permission, but should be able to view his groups anyway.
---
 aleksis/apps/cursus/schema.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/aleksis/apps/cursus/schema.py b/aleksis/apps/cursus/schema.py
index 986be05..3c10b2a 100644
--- a/aleksis/apps/cursus/schema.py
+++ b/aleksis/apps/cursus/schema.py
@@ -144,7 +144,9 @@ class CourseType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
 
     @staticmethod
     def resolve_groups(root, info, **kwargs):
-        return get_objects_for_user(info.context.user, "core.view_group", root.groups.all())
+        by_permission = get_objects_for_user(info.context.user, "core.view_group", root.groups.all())
+        by_ownership = info.context.user.person.owner_of.all() & root.groups.all()
+        return by_permission | by_ownership
 
     @staticmethod
     def resolve_course_id(root, info, **kwargs):
-- 
GitLab


From 78bc5ba120b7ae4b52247435371be367d9e93d06 Mon Sep 17 00:00:00 2001
From: Michael Bauer <michael-bauer@posteo.de>
Date: Fri, 16 Feb 2024 12:20:15 +0100
Subject: [PATCH 2/2] Reformat

---
 aleksis/apps/cursus/schema.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/aleksis/apps/cursus/schema.py b/aleksis/apps/cursus/schema.py
index 3c10b2a..48ff689 100644
--- a/aleksis/apps/cursus/schema.py
+++ b/aleksis/apps/cursus/schema.py
@@ -144,7 +144,9 @@ class CourseType(PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
 
     @staticmethod
     def resolve_groups(root, info, **kwargs):
-        by_permission = get_objects_for_user(info.context.user, "core.view_group", root.groups.all())
+        by_permission = get_objects_for_user(
+            info.context.user, "core.view_group", root.groups.all()
+        )
         by_ownership = info.context.user.person.owner_of.all() & root.groups.all()
         return by_permission | by_ownership
 
-- 
GitLab