From 166bddf721e9fa9485470d792ef46536d93a5d10 Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Wed, 5 Jul 2023 15:24:44 +0200 Subject: [PATCH] Allow getting a group by id --- aleksis/core/schema/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/aleksis/core/schema/__init__.py b/aleksis/core/schema/__init__.py index fd9a93036..2c8358b45 100644 --- a/aleksis/core/schema/__init__.py +++ b/aleksis/core/schema/__init__.py @@ -72,6 +72,7 @@ class Query(graphene.ObjectType): person_by_id_or_me = graphene.Field(PersonType, id=graphene.ID()) groups = graphene.List(GroupType) + group_by_id = graphene.Field(GroupType, id=graphene.ID()) who_am_i = graphene.Field(UserType) @@ -144,6 +145,19 @@ class Query(graphene.ObjectType): def resolve_groups(root, info, **kwargs): return get_objects_for_user(info.context.user, "core.view_group", Group) + @staticmethod + def resolve_group_by_id(root, info, id): + group = Group.objects.filter(id=id) + + if len(group) != 1: + return None + + group = group.first() + + if not info.context.user.has_perm("core.view_group", group): + raise PermissionDenied() + return group + def resolve_who_am_i(root, info, **kwargs): return info.context.user -- GitLab