From ad7497de1030b5a2356d980da11159ce7a2f6064 Mon Sep 17 00:00:00 2001 From: Olivia Rodriguez Valdes Date: Thu, 28 Feb 2019 14:58:20 -0500 Subject: [PATCH] Refactor PermissionField --- graphene_django/fields.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/graphene_django/fields.py b/graphene_django/fields.py index 384a6b6..0f1733d 100644 --- a/graphene_django/fields.py +++ b/graphene_django/fields.py @@ -1,8 +1,7 @@ from functools import partial -from django.core.exceptions import PermissionDenied from django.db.models.query import QuerySet -from graphene.utils.get_unbound_function import get_unbound_function +from django.utils.six import get_unbound_function from promise import Promise @@ -155,16 +154,16 @@ class DjangoConnectionField(ConnectionField): ) -class DjangoPermissionField(Field): +class DjangoField(Field): """Class to manage permission for fields""" - AUTH_RESOLVER = auth_resolver - def __init__(self, type, permissions, *args, **kwargs): + def __init__(self, type, permissions, permission_resolver=auth_resolver, *args, **kwargs): """Get permissions to access a field""" - super(DjangoPermissionField, self).__init__(type, *args, **kwargs) + super(DjangoField, self).__init__(type, *args, **kwargs) self.permissions = permissions + self.permissions_resolver = permission_resolver def get_resolver(self, parent_resolver): """Intercept resolver to analyse permissions""" - return partial(get_unbound_function(self.AUTH_RESOLVER), self.resolver or parent_resolver, self.permissions, - True) + return partial(get_unbound_function(self.permission_resolver), self.resolver or parent_resolver, + self.permissions, raise_exception=True)