为django graphene设计的类似DRF的权限系统
项目描述
DGP - Django graphene权限
受DRF启发的权限系统
安装
安装最新版本
$ pip3 install django-graphene-permissions
或使用pipenv
$ pipenv install django-graphene-permissions
用法
权限定义
您可以通过扩展 BasePermission
来创建新权限,例如。
from django_graphene_permissions.permissions import BasePermission
class MyPermission(BasePermission):
@staticmethod
def has_permission(context):
return context.user and context.user.is_authenticated
@staticmethod
def has_object_permission(context, obj):
return True
本软件包提供预定义权限
AllowAny
: 允许任何访问。IsAuthenticated
: 仅允许已验证用户。
节点权限
扩展 PermissionDjangoObjectType
并通过静态方法 permission_classes
定义权限,该方法应返回一个权限类迭代器
from django_graphene_permissions import PermissionDjangoObjectType
from django_graphene_permissions.permissions import IsAuthenticated
class ExampleNode(PermissionDjangoObjectType):
class Meta:
model = Example
interfaces = (relay.Node,)
@staticmethod
def permission_classes():
return [IsAuthenticated]
突变权限
将 permissions_checker([Permission,...])
装饰器应用于 mutate
例如。
from django_graphene_permissions import permissions_checker
from django_graphene_permissions.permissions import IsAuthenticated
class ExampleDeleteMutation(graphene.Mutation):
ok = graphene.Boolean()
class Arguments:
id = graphene.ID()
@permissions_checker([IsAuthenticated])
def mutate(self, info, id):
instance = get_instance(id)
instance.delete()
return ExampleDeleteMutation(ok=True)
查询权限
将 permissions_checker([Permission,...])
装饰器应用于字段解析器,例如。
from django_graphene_permissions import permissions_checker
from django_graphene_permissions.permissions import IsAuthenticated
class Query(graphene.ObjectType):
post = relay.Node.Field(PostNode)
posts = DjangoFilterConnectionField(PostNode)
@permissions_checker([IsAuthenticated])
def resolve_posts(self, info, **kwargs):
return Post.objects.all()
待办事项
- 改进
- 测试
- 添加
PermissionDjangoFilterConnectionField
- 更好的文档
项目详情
关闭
django_graphene_permissions-0.0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5ed879e9031519ed9f03d5a39794968374fccf9bbb8d89f0a91337b657285ccd |
|
MD5 | 645dbe1c97108655e2fb03cc10f5f18f |
|
BLAKE2b-256 | 748142f847d9b767155ba0dad3acbb007d38657a128b1f700dbc01de2e70df43 |
关闭
django_graphene_permissions-0.0.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 837d45f621c26fa8fba332139dfbd70aa80c54fba618b27357957360170203e4 |
|
MD5 | 5fc0af7e4a5a97e3edd1ed339ae70cda |
|
BLAKE2b-256 | 54b13600f6869e6f5ac55bb31b0e2a2c85272f14bb876f0700eda7289f8ed8b6 |