From 4c6e7209c37a44d043c253d6fc0d7b5af0f94472 Mon Sep 17 00:00:00 2001 From: Olivia Rodriguez Valdes Date: Fri, 4 Jan 2019 15:02:50 -0500 Subject: [PATCH] Add viewer management --- graphene_django/fields.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/graphene_django/fields.py b/graphene_django/fields.py index 7c3cdfa..1926f8a 100644 --- a/graphene_django/fields.py +++ b/graphene_django/fields.py @@ -162,6 +162,10 @@ class DjangoPermissionField(Field): super(DjangoPermissionField, self).__init__(type, *args, **kwargs) self.permissions = permissions + def get_viewer(self, root, info, **args): + """Get viewer to verify permissions""" + return info.context.user + def permission_resolver(self, parent_resolver, raise_exception, root, info, **args): """ Middleware resolver to check viewer's permissions @@ -173,7 +177,7 @@ class DjangoPermissionField(Field): :return: Resolved field. None if the viewer does not have permission to access the field. """ # Get viewer from context - user = info.context.user + user = self.get_viewer(root, info, **args) if has_permissions(user, self.permissions): if parent_resolver: # A resolver is provided in the class