From 05f659bc87f798f458027034284d47c8412a2717 Mon Sep 17 00:00:00 2001 From: 1638245306 <1638245306@qq.com> Date: Sat, 22 Jun 2024 16:10:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/system/views/dept.py | 21 +++------------------ backend/dvadmin/system/views/menu_button.py | 2 +- backend/dvadmin/system/views/user.py | 3 +++ 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/backend/dvadmin/system/views/dept.py b/backend/dvadmin/system/views/dept.py index 5c5105b..dfdbc82 100644 --- a/backend/dvadmin/system/views/dept.py +++ b/backend/dvadmin/system/views/dept.py @@ -124,30 +124,15 @@ class DeptViewSet(CustomModelViewSet): data = serializer.data return SuccessResponse(data=data) - @action(methods=["GET"], detail=False, permission_classes=[IsAuthenticated], extra_filter_class=[]) + @action(methods=["GET"], detail=False, permission_classes=[IsAuthenticated]) def dept_lazy_tree(self, request, *args, **kwargs): parent = self.request.query_params.get('parent') is_superuser = request.user.is_superuser if is_superuser: queryset = Dept.objects.values('id', 'name', 'parent') else: - role_ids = request.user.role.values_list('id', flat=True) - data_range = RoleMenuButtonPermission.objects.filter(role__in=role_ids).values_list('data_range', flat=True) - user_dept_id = request.user.dept.id - dept_list = [user_dept_id] - data_range_list = list(set(data_range)) - for item in data_range_list: - if item in [0, 2]: - dept_list = [user_dept_id] - elif item == 1: - dept_list = Dept.recursion_all_dept(dept_id=user_dept_id) - elif item == 3: - dept_list = Dept.objects.values_list('id', flat=True) - elif item == 4: - dept_list = request.user.role.values_list('dept', flat=True) - else: - dept_list = [] - queryset = Dept.objects.filter(id__in=dept_list).values('id', 'name', 'parent') + queryset = Dept.objects.values('id', 'name', 'parent') + queryset = self.filter_queryset(queryset) return DetailResponse(data=queryset, msg="获取成功") @action(methods=["GET"], detail=False, permission_classes=[IsAuthenticated], extra_filter_class=[]) diff --git a/backend/dvadmin/system/views/menu_button.py b/backend/dvadmin/system/views/menu_button.py index f91839a..f6cc411 100644 --- a/backend/dvadmin/system/views/menu_button.py +++ b/backend/dvadmin/system/views/menu_button.py @@ -10,7 +10,7 @@ from django.db.models import F from rest_framework.decorators import action from rest_framework.permissions import IsAuthenticated -from dvadmin.system.models import MenuButton, RoleMenuButtonPermission +from dvadmin.system.models import MenuButton, RoleMenuButtonPermission, Menu from dvadmin.utils.json_response import DetailResponse, SuccessResponse from dvadmin.utils.serializers import CustomModelSerializer from dvadmin.utils.viewset import CustomModelViewSet diff --git a/backend/dvadmin/system/views/user.py b/backend/dvadmin/system/views/user.py index c6c002e..559bdf1 100644 --- a/backend/dvadmin/system/views/user.py +++ b/backend/dvadmin/system/views/user.py @@ -407,9 +407,12 @@ class UserViewSet(CustomModelViewSet): queryset = self.filter_queryset(self.get_queryset()) else: queryset = self.filter_queryset(self.get_queryset()) + print(queryset.values('id','name','dept__id')) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True, request=request) + print(serializer.data) return self.get_paginated_response(serializer.data) serializer = self.get_serializer(queryset, many=True, request=request) + return SuccessResponse(data=serializer.data, msg="获取成功")