feat: 导出角色权限配置与按钮权限
This commit is contained in:
@@ -175,15 +175,21 @@ class RoleMenuInitSerializer(CustomModelSerializer):
|
|||||||
"""
|
"""
|
||||||
初始化角色菜单(用于生成初始化json文件)
|
初始化角色菜单(用于生成初始化json文件)
|
||||||
"""
|
"""
|
||||||
role__key = serializers.CharField(max_length=100, required=True)
|
role__key = serializers.CharField(source='role.key')
|
||||||
menu__web_path = serializers.CharField(max_length=100, required=True)
|
menu__web_path = serializers.CharField(source='menu.web_path')
|
||||||
menu__component_name = serializers.CharField(max_length=100, required=True, allow_blank=True)
|
menu__component_name = serializers.CharField(source='menu.component_name', allow_blank=True)
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
init_data = self.initial_data
|
||||||
|
role_id = Role.objects.filter(key=init_data['role__key']).first()
|
||||||
|
menu_id = Menu.objects.filter(web_path=init_data['menu__web_path'], component_name=init_data['menu__component_name']).first()
|
||||||
|
validated_data['role'] = role_id
|
||||||
|
validated_data['menu'] = menu_id
|
||||||
|
return super().update(instance, validated_data)
|
||||||
|
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
init_data = self.initial_data
|
init_data = self.initial_data
|
||||||
validated_data.pop('menu__web_path')
|
|
||||||
validated_data.pop('menu__component_name')
|
|
||||||
validated_data.pop('role__key')
|
|
||||||
role_id = Role.objects.filter(key=init_data['role__key']).first()
|
role_id = Role.objects.filter(key=init_data['role__key']).first()
|
||||||
menu_id = Menu.objects.filter(web_path=init_data['menu__web_path'], component_name=init_data['menu__component_name']).first()
|
menu_id = Menu.objects.filter(web_path=init_data['menu__web_path'], component_name=init_data['menu__component_name']).first()
|
||||||
validated_data['role'] = role_id
|
validated_data['role'] = role_id
|
||||||
@@ -192,7 +198,7 @@ class RoleMenuInitSerializer(CustomModelSerializer):
|
|||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = RoleMenuPermission
|
model = RoleMenuPermission
|
||||||
fields = ['role__key', 'menu__web_path', 'menu__component_name', 'creator', 'dept_belong_id']
|
fields = ['role__key', 'menu__web_path', 'menu__component_name','creator', 'dept_belong_id']
|
||||||
read_only_fields = ["id"]
|
read_only_fields = ["id"]
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'role': {'required': False},
|
'role': {'required': False},
|
||||||
@@ -206,8 +212,8 @@ class RoleMenuButtonInitSerializer(CustomModelSerializer):
|
|||||||
"""
|
"""
|
||||||
初始化角色菜单按钮(用于生成初始化json文件)
|
初始化角色菜单按钮(用于生成初始化json文件)
|
||||||
"""
|
"""
|
||||||
role__key = serializers.CharField(max_length=100, required=True)
|
role__key = serializers.CharField(source='role.key')
|
||||||
menu_button__value = serializers.CharField(max_length=100, required=True)
|
menu_button__value = serializers.CharField(source='menu_button.value')
|
||||||
data_range = serializers.CharField(max_length=100, required=False)
|
data_range = serializers.CharField(max_length=100, required=False)
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ django.setup()
|
|||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
|
|
||||||
from application.settings import BASE_DIR
|
from application.settings import BASE_DIR
|
||||||
from dvadmin.system.models import Menu, Users, Dept, Role, ApiWhiteList, Dictionary, SystemConfig
|
from dvadmin.system.models import Menu, Users, Dept, Role, ApiWhiteList, Dictionary, SystemConfig, RoleMenuButtonPermission, RoleMenuPermission
|
||||||
from dvadmin.system.fixtures.initSerializer import UsersInitSerializer, DeptInitSerializer, RoleInitSerializer, \
|
from dvadmin.system.fixtures.initSerializer import UsersInitSerializer, DeptInitSerializer, RoleInitSerializer, \
|
||||||
MenuInitSerializer, ApiWhiteListInitSerializer, DictionaryInitSerializer, SystemConfigInitSerializer, \
|
MenuInitSerializer, ApiWhiteListInitSerializer, DictionaryInitSerializer, SystemConfigInitSerializer, \
|
||||||
RoleMenuInitSerializer, RoleMenuButtonInitSerializer
|
RoleMenuInitSerializer, RoleMenuButtonInitSerializer
|
||||||
@@ -57,6 +57,12 @@ class Command(BaseCommand):
|
|||||||
def generate_system_config(self):
|
def generate_system_config(self):
|
||||||
self.serializer_data(SystemConfigInitSerializer, SystemConfig.objects.filter(parent_id__isnull=True))
|
self.serializer_data(SystemConfigInitSerializer, SystemConfig.objects.filter(parent_id__isnull=True))
|
||||||
|
|
||||||
|
def generate_role_menu(self):
|
||||||
|
self.serializer_data(RoleMenuInitSerializer, RoleMenuPermission.objects.all())
|
||||||
|
|
||||||
|
def generate_role_menu_button(self):
|
||||||
|
self.serializer_data(RoleMenuButtonInitSerializer, RoleMenuButtonPermission.objects.all())
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
generate_name = options.get('generate_name')
|
generate_name = options.get('generate_name')
|
||||||
generate_name_dict = {
|
generate_name_dict = {
|
||||||
@@ -67,6 +73,8 @@ class Command(BaseCommand):
|
|||||||
"api_white_list": self.generate_api_white_list,
|
"api_white_list": self.generate_api_white_list,
|
||||||
"dictionary": self.generate_dictionary,
|
"dictionary": self.generate_dictionary,
|
||||||
"system_config": self.generate_system_config,
|
"system_config": self.generate_system_config,
|
||||||
|
"role_menu": self.generate_role_menu,
|
||||||
|
"role_menu_button": self.generate_role_menu_button,
|
||||||
}
|
}
|
||||||
if not generate_name:
|
if not generate_name:
|
||||||
for ele in generate_name_dict.keys():
|
for ele in generate_name_dict.keys():
|
||||||
|
|||||||
Reference in New Issue
Block a user