mirror of
https://github.com/graphql-python/graphene-django.git
synced 2025-04-25 19:43:51 +03:00
Add viewer management
This commit is contained in:
parent
a314511ea4
commit
4c6e7209c3
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user