Merge branch 'permissions-to-fields#3' into permission-to-type#5

# Conflicts:
#	graphene_django/fields.py
This commit is contained in:
Olivia Rodriguez Valdes 2019-02-28 15:18:46 -05:00
commit 1382e93b28

View File

@ -1,12 +1,12 @@
from functools import partial from functools import partial
from django.db.models.query import QuerySet from django.db.models.query import QuerySet
from django.utils.six import get_unbound_function
from promise import Promise from promise import Promise
from graphene.types import Field, List from graphene.types import Field, List
from graphene.relay import ConnectionField, PageInfo from graphene.relay import ConnectionField, PageInfo
from graphene.utils.get_unbound_function import get_unbound_function
from graphql_relay.connection.arrayconnection import connection_from_list_slice from graphql_relay.connection.arrayconnection import connection_from_list_slice
from .settings import graphene_settings from .settings import graphene_settings
@ -154,15 +154,16 @@ class DjangoConnectionField(ConnectionField):
) )
class DjangoPermissionField(Field): class DjangoField(Field):
"""Class to manage permission for fields""" """Class to manage permission for fields"""
AUTH_RESOLVER = auth_resolver
def __init__(self, type, permissions, *args, **kwargs): def __init__(self, type, permissions, permissions_resolver=auth_resolver, *args, **kwargs):
"""Get permissions to access a field""" """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 = permissions
self.permissions_resolver = permissions_resolver
def get_resolver(self, parent_resolver): def get_resolver(self, parent_resolver):
"""Intercept resolver to analyse permissions""" """Intercept resolver to analyse permissions"""
return partial(get_unbound_function(self.AUTH_RESOLVER), self.resolver or parent_resolver, self.permissions,None, None, True) return partial(get_unbound_function(self.permissions_resolver), self.resolver or parent_resolver, self.permissions,
None, None, True)