Skip to content
Snippets Groups Projects
Commit 39d0aa7c authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Fix permission filtering for viewing own grades

parent 9ec6b33d
No related branches found
No related tags found
2 merge requests!4Resolve "Add permissions/rules",!2Frontend
from django.core.exceptions import PermissionDenied
from django.db.models import Q
from graphene_django.types import DjangoObjectType
from guardian.shortcuts import get_objects_for_user
......@@ -45,10 +46,12 @@ class GradeType(SharedSecretObjectType, PermissionsTypeMixin, DjangoFilterMixin,
Group.objects.filter(parent_groups__in=owned_groups)
)
filters = Q(effort__group__in=groups.values_list("id", flat=True))
if get_site_preferences()["maka__view_own_grades"]:
groups = groups.union(info.context.user.person.member_of.all())
filters = filters | Q(person=info.context.user.person)
return super().get_queryset(queryset, info).filter(effort__group__in=groups.values_list("id", flat=True))
return super().get_queryset(queryset, info).filter(filters)
raise PermissionDenied()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment