您当前的位置: 首页 > 

IT之一小佬

暂无认证

  • 0浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

权限表管理之获取用户权限表列表数据

IT之一小佬 发布时间:2021-07-31 15:05:33 ,浏览量:0

 用户权限控制说明

在产品运营平台中,是需要对用户进行权限控制的。Django实现了用户权限的控制

  • 消费者用户与公司内部运营用户使用一个用户数据库来存储
  • 通过is_staff 来区分是运营用户还是消费者用户
  • 对于运营用户通过is_superuser 来区分是运营平台的管理员还是运营平台的普通用户
  • 对于运营平台的普通用户,通过权限、组和组外权限来控制这个用户在平台上可以操作的数据。
  • 对于权限,Django会为每个数据库表提供增、删、改、查四种权限
  • 用户最终的权限为 组权限 + 用户特有权限

权限表管理

在权限表中我们需要对权限表数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作

获取用户权限表列表数据 接口分析

请求方式: GET /meiduo_admin/permission/perms/

#  用户权限管理
router = DefaultRouter()
router.register('permission/perms', permission.PermissionView, base_name='perms')
# print(router.urls)
urlpatterns += router.urls

请求参数: 通过请求头传递jwt token数据。

返回数据: JSON

  {
        "counts": "权限总数量",
        "list": [
            {
                "id": "权限id",
                "name": "权限名称",
                "codename": "权限识别名",
                "content_type": "权限类型"
            },
            ...
        ],
        "page": "当前页码",
        "pages": "总页码",
        "pagesize": "页容量"
    }
返回值类型是否必须说明countsint是权限总数量lists数组是权限表信息pageint是页码pagesint是总页数pagesizeint是页容量 后端实现

from django.contrib.auth.models import Permission, ContentType
from rest_framework.viewsets import ModelViewSet
from meiduo_admin.serializers.permission import PermissionSerializer
from meiduo_admin.utils import UserPageNum


class PermissionView(ModelViewSet):
    serializer_class = PermissionSerializer
    queryset = Permission.objects.all()
    pagination_class = UserPageNum

序列化器的定义

from django.contrib.auth.models import Permission, ContentType
from rest_framework import serializers


class PermissionSerializer(serializers.ModelSerializer):
    """
        用户权限表序列化器
    """

    class Meta:
        model = Permission
        fields = "__all__"

运行效果:

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0703s