1.新增字段权限接口
This commit is contained in:
@@ -15,6 +15,7 @@ from dvadmin.system.views.dept import DeptSerializer
|
|||||||
from dvadmin.system.views.menu import MenuSerializer
|
from dvadmin.system.views.menu import MenuSerializer
|
||||||
from dvadmin.system.views.menu_button import MenuButtonSerializer
|
from dvadmin.system.views.menu_button import MenuButtonSerializer
|
||||||
from dvadmin.utils.crud_mixin import FastCrudMixin
|
from dvadmin.utils.crud_mixin import FastCrudMixin
|
||||||
|
from dvadmin.utils.field_permission import FieldPermissionMixin
|
||||||
from dvadmin.utils.json_response import SuccessResponse, DetailResponse
|
from dvadmin.utils.json_response import SuccessResponse, DetailResponse
|
||||||
from dvadmin.utils.serializers import CustomModelSerializer
|
from dvadmin.utils.serializers import CustomModelSerializer
|
||||||
from dvadmin.utils.validator import CustomUniqueValidator
|
from dvadmin.utils.validator import CustomUniqueValidator
|
||||||
@@ -101,7 +102,7 @@ class MenuButtonPermissionSerializer(CustomModelSerializer):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
class RoleViewSet(CustomModelViewSet, FastCrudMixin):
|
class RoleViewSet(CustomModelViewSet, FastCrudMixin,FieldPermissionMixin):
|
||||||
"""
|
"""
|
||||||
角色管理接口
|
角色管理接口
|
||||||
list:查询
|
list:查询
|
||||||
|
|||||||
29
backend/dvadmin/utils/field_permission.py
Normal file
29
backend/dvadmin/utils/field_permission.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from rest_framework.decorators import action
|
||||||
|
from rest_framework.permissions import IsAuthenticated
|
||||||
|
|
||||||
|
from dvadmin.system.models import Columns
|
||||||
|
from dvadmin.utils.json_response import DetailResponse
|
||||||
|
from dvadmin.utils.models import get_custom_app_models
|
||||||
|
|
||||||
|
|
||||||
|
class FieldPermissionMixin:
|
||||||
|
@action(methods=['get'], detail=False,permission_classes=[IsAuthenticated])
|
||||||
|
def field_permission(self, request):
|
||||||
|
"""
|
||||||
|
获取字段权限
|
||||||
|
"""
|
||||||
|
finded = False
|
||||||
|
for app in get_custom_app_models():
|
||||||
|
for model in app:
|
||||||
|
if model['object'] is self.serializer_class.Meta.model:
|
||||||
|
finded = True
|
||||||
|
break
|
||||||
|
if finded:
|
||||||
|
break
|
||||||
|
if finded is False:
|
||||||
|
return []
|
||||||
|
data= Columns.objects.filter(
|
||||||
|
app=model['app'], model=model['model']
|
||||||
|
).values('field_name', 'is_create', 'is_query', 'is_update')
|
||||||
|
return DetailResponse(data=data)
|
||||||
@@ -50,7 +50,7 @@ export const createCrudOptions = function ({
|
|||||||
width: 260,
|
width: 260,
|
||||||
buttons: {
|
buttons: {
|
||||||
view: {
|
view: {
|
||||||
show: false,
|
show: true,
|
||||||
},
|
},
|
||||||
edit: {
|
edit: {
|
||||||
show: hasPermissions('role:Update'),
|
show: hasPermissions('role:Update'),
|
||||||
|
|||||||
Reference in New Issue
Block a user