From 6aff934963b62d53c909121712b3c9d8da776723 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=BF=E5=B0=8F=E5=A4=A9?= <1638245306@qq.com> Date: Fri, 15 Apr 2022 19:47:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBUG:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 孙子级部门以下数据不正确问题 --- backend/dvadmin/utils/filters.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/backend/dvadmin/utils/filters.py b/backend/dvadmin/utils/filters.py index 1f5a43b..67c179b 100644 --- a/backend/dvadmin/utils/filters.py +++ b/backend/dvadmin/utils/filters.py @@ -36,7 +36,7 @@ def get_dept(dept_id: int, dept_all_list=None, dept_list=None): if dept_list is None: dept_list = [dept_id] for ele in dept_all_list: - if ele.get('parentId') == dept_id: + if ele.get('parent') == dept_id: dept_list.append(ele.get('id')) get_dept(ele.get('id'), dept_all_list, dept_list) return list(set(dept_list)) @@ -94,10 +94,15 @@ class DataLevelPermissionsFilter(BaseFilterBackend): return queryset.filter(dept_belong_id=user_dept_id) # 3. 根据所有角色 获取所有权限范围 + # (0, "仅本人数据权限"), + # (1, "本部门及以下数据权限"), + # (2, "本部门数据权限"), + # (3, "全部数据权限"), + # (4, "自定数据权限") role_list = request.user.role.filter(status=1).values('admin', 'data_range') - dataScope_list = [] + dataScope_list = [] # 权限范围列表 for ele in role_list: - # 3.1 判断用户是否为超级管理员角色/如果有1(所有数据) 则返回所有数据 + # 判断用户是否为超级管理员角色/如果拥有[全部数据权限]则返回所有数据 if 3 == ele.get('data_range') or ele.get('admin') == True: return queryset dataScope_list.append(ele.get('data_range'))