mirror of
https://github.com/graphql-python/graphene-django.git
synced 2025-04-25 11:23:45 +03:00
Refactor PermissionField
This commit is contained in:
parent
813b31e965
commit
ad7497de10
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user