diff --git a/backend/application/settings.py b/backend/application/settings.py
index b311baef0a5f12e00aa5f9bdf0580265b8b0a1e5..a26d2835ad140971f96875de2efff1f6d7c3b759 100644
--- a/backend/application/settings.py
+++ b/backend/application/settings.py
@@ -44,6 +44,9 @@ DEBUG = locals().get("DEBUG", True)
ALLOWED_HOSTS = locals().get("ALLOWED_HOSTS", ["*"])
# Application definition
+CUSTOM_APPS = [
+ "dvadmin.system",
+]
INSTALLED_APPS = [
"django.contrib.auth",
@@ -58,7 +61,7 @@ INSTALLED_APPS = [
"drf_yasg",
"captcha",
'channels',
- *locals().get("CUSTOM_APPS", []), # 所有项目里写的app需要在env.py文件里的CUSTOM_APPS中
+ *locals().get("CUSTOM_APPS", []), # 自定义且需要字段权限控制的app写在上方的CUSTOM_APPS中
]
MIDDLEWARE = [
@@ -96,7 +99,6 @@ WSGI_APPLICATION = "application.wsgi.application"
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
-
DATABASES = {
"default": {
"ENGINE": DATABASE_ENGINE,
diff --git a/backend/dvadmin/system/fixtures/initSerializer.py b/backend/dvadmin/system/fixtures/initSerializer.py
index fc701bc7c7e76d7c7666889b0c7a09e50634e551..a2d74f6535223f8e0d2aab484a4e16b5c2a19b88 100644
--- a/backend/dvadmin/system/fixtures/initSerializer.py
+++ b/backend/dvadmin/system/fixtures/initSerializer.py
@@ -128,7 +128,7 @@ class RoleInitSerializer(CustomModelSerializer):
class Meta:
model = Role
- fields = ['name', 'key', 'sort', 'status', 'admin',
+ fields = ['name', 'key', 'sort', 'status',
'creator', 'dept_belong_id']
read_only_fields = ["id"]
extra_kwargs = {
diff --git a/backend/dvadmin/system/fixtures/init_role.json b/backend/dvadmin/system/fixtures/init_role.json
index 6fb63fe1059d4ba12e4ca8cef39bd9f5cbb94f5d..f1678e57f0ba2692a0e003e1a77ebcc6f40febaa 100644
--- a/backend/dvadmin/system/fixtures/init_role.json
+++ b/backend/dvadmin/system/fixtures/init_role.json
@@ -4,7 +4,6 @@
"key": "admin",
"sort": 1,
"status": true,
- "admin": true,
"remark": null
},
{
@@ -12,7 +11,6 @@
"key": "public",
"sort": 2,
"status": true,
- "admin": true,
"remark": null
}
]
diff --git a/backend/dvadmin/system/models.py b/backend/dvadmin/system/models.py
index ed728ea7bbec9c16384f2f01e840d749486d4dea..6d4f4476177c041a3bc26b850ac8f43c533cd709 100644
--- a/backend/dvadmin/system/models.py
+++ b/backend/dvadmin/system/models.py
@@ -13,7 +13,6 @@ class Role(CoreModel):
key = models.CharField(max_length=64, unique=True, verbose_name="权限字符", help_text="权限字符")
sort = models.IntegerField(default=1, verbose_name="角色顺序", help_text="角色顺序")
status = models.BooleanField(default=True, verbose_name="角色状态", help_text="角色状态")
- admin = models.BooleanField(default=False, verbose_name="是否为admin", help_text="是否为admin")
class Meta:
db_table = table_prefix + "system_role"
@@ -184,7 +183,6 @@ class Columns(CoreModel):
role = models.ForeignKey(to='Role', on_delete=models.CASCADE, verbose_name='角色', db_constraint=False)
app = models.CharField(max_length=64, verbose_name='应用名')
model = models.CharField(max_length=64, verbose_name='表名')
- menu = models.ForeignKey(to='Menu', on_delete=models.CASCADE, verbose_name='菜单', db_constraint=False)
field_name = models.CharField(max_length=64, verbose_name='模型表字段名')
title = models.CharField(max_length=64, verbose_name='字段显示名')
is_query = models.BooleanField(default=1, verbose_name='是否可查询')
diff --git a/backend/dvadmin/system/views/column.py b/backend/dvadmin/system/views/column.py
index a23d27cdb8d7e65ef876f5d5d18ef6704b8281bb..5b9024c56db1b6e8d030ece13f6a38e9227d3c13 100644
--- a/backend/dvadmin/system/views/column.py
+++ b/backend/dvadmin/system/views/column.py
@@ -32,10 +32,9 @@ class ColumnViewSet(CustomModelViewSet):
role_id = request.query_params.get('role')
app_name = request.query_params.get('app')
model_name = request.query_params.get('model')
- menu = request.query_params.get('menu')
- if not role_id or not model_name or not app_name or not menu:
+ if not role_id or not model_name or not app_name:
return SuccessResponse([])
- queryset = self.filter_queryset(self.get_queryset().filter(role_id=role_id, model=model_name, app=app_name,menu_id=menu))
+ queryset = self.filter_queryset(self.get_queryset().filter(role_id=role_id, model=model_name, app=app_name))
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True, request=request)
diff --git a/backend/dvadmin/system/views/menu.py b/backend/dvadmin/system/views/menu.py
index 68996462949e517144a1e2d264f9931d514a60c6..7ac3c40cdc4680d536d4488141633c675ddc137f 100644
--- a/backend/dvadmin/system/views/menu.py
+++ b/backend/dvadmin/system/views/menu.py
@@ -119,8 +119,7 @@ class MenuViewSet(CustomModelViewSet):
def web_router(self, request):
"""用于前端获取当前角色的路由"""
user = request.user
- is_admin = user.role.values_list('admin', flat=True)
- if user.is_superuser or True in is_admin:
+ if user.is_superuser:
queryset = self.queryset.filter(status=1)
else:
role_list = user.role.values_list('id', flat=True)
diff --git a/backend/dvadmin/system/views/menu_button.py b/backend/dvadmin/system/views/menu_button.py
index 94a65efb1f429cbbe07cd1dd01ef42724dfcccd1..245b34735ecb57c7b0e4ddf9eaac6d9812586e2e 100644
--- a/backend/dvadmin/system/views/menu_button.py
+++ b/backend/dvadmin/system/views/menu_button.py
@@ -63,8 +63,7 @@ class MenuButtonViewSet(CustomModelViewSet):
:return:
"""
is_superuser = request.user.is_superuser
- is_admin = request.user.role.values_list('admin', flat=True)
- if is_superuser or True in is_admin:
+ if is_superuser:
queryset = MenuButton.objects.values_list('value',flat=True)
else:
role_id = request.user.role.values_list('id', flat=True)
diff --git a/backend/dvadmin/utils/filters.py b/backend/dvadmin/utils/filters.py
index dbd921fa3c3fd1cba3a8de8c6b9b58e4d1f109ba..307de166581d011095c56289692037e8636e883b 100644
--- a/backend/dvadmin/utils/filters.py
+++ b/backend/dvadmin/utils/filters.py
@@ -86,12 +86,11 @@ class DataLevelPermissionsFilter(BaseFilterBackend):
如果不是超级管理员,则进入下一步权限判断
"""
if request.user.is_superuser == 0:
- return self._extracted_from_filter_queryset_33(request, queryset, api, method)
+ return self.filter_dept_queryset(request, queryset, api, method)
else:
return queryset
- # TODO Rename this here and in `filter_queryset`
- def _extracted_from_filter_queryset_33(self, request, queryset, api, method):
+ def filter_dept_queryset(self, request, queryset, api, method):
# 0. 获取用户的部门id,没有部门则返回空
user_dept_id = getattr(request.user, "dept_id", None)
if not user_dept_id:
@@ -121,13 +120,12 @@ class DataLevelPermissionsFilter(BaseFilterBackend):
role__status=1,
menu_button__api=re_api,
menu_button__method=method).values(
- 'data_range',
- role_admin=F('role__admin')
+ 'data_range'
)
dataScope_list = [] # 权限范围列表
for ele in role_permission_list:
# 判断用户是否为超级管理员角色/如果拥有[全部数据权限]则返回所有数据
- if ele.get("data_range") == 3 or ele.get("role_admin") == True:
+ if ele.get("data_range") == 3:
return queryset
dataScope_list.append(ele.get("data_range"))
dataScope_list = list(set(dataScope_list))
diff --git a/backend/dvadmin/utils/pagination.py b/backend/dvadmin/utils/pagination.py
index 52bf143dc579cedc7c2fec0e2e11b7a68028443e..689f7fcae75ebbf8460dd9ab4b2fff97dd6608be 100644
--- a/backend/dvadmin/utils/pagination.py
+++ b/backend/dvadmin/utils/pagination.py
@@ -80,5 +80,4 @@ class CustomPagination(PageNumberPagination):
('is_next', is_next),
('is_previous', is_previous),
('data', data),
- ('permission', self.request.permission_fields)
]))
diff --git a/web/src/views/system/columns/index.vue b/web/src/views/system/columns/index.vue
index cd7722e12ab29248f97f57ef5e9647f1e9b91ce7..08d13f295d567e88fc1eede162e16ecd44c54d1b 100644
--- a/web/src/views/system/columns/index.vue
+++ b/web/src/views/system/columns/index.vue
@@ -1,124 +1,99 @@
-
-
-
-
-
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/system/columns/types.ts b/web/src/views/system/columns/types.ts
index b41cca87c6b3ee3b575da1cb68dc876d7446ed8a..e36eab73f95118abac6a28428765099d803e5e06 100644
--- a/web/src/views/system/columns/types.ts
+++ b/web/src/views/system/columns/types.ts
@@ -13,8 +13,6 @@ export interface CurrentInfoType {
role: string;
model: string;
app: string;
-
- menu: string;
}
export interface ModelItemType {
diff --git a/web/src/views/system/dictionary/subDict/index.vue b/web/src/views/system/dictionary/subDict/index.vue
index 65dd40092b13fe6cdaa3046cd7f462875fc92ce0..ab7fdbb5a0ee5b6a2d79e413309289e7bd725bc7 100644
--- a/web/src/views/system/dictionary/subDict/index.vue
+++ b/web/src/views/system/dictionary/subDict/index.vue
@@ -1,5 +1,5 @@
-
+