diff --git a/backend/dvadmin/system/fixtures/initSerializer.py b/backend/dvadmin/system/fixtures/initSerializer.py index 3b693b1..7348455 100644 --- a/backend/dvadmin/system/fixtures/initSerializer.py +++ b/backend/dvadmin/system/fixtures/initSerializer.py @@ -9,7 +9,7 @@ django.setup() from dvadmin.system.models import ( Role, Dept, Users, Menu, MenuButton, ApiWhiteList, Dictionary, SystemConfig, - RoleMenuPermission, RoleApiPermission + RoleMenuPermission, RoleApiPermission, Columns ) from dvadmin.utils.serializers import CustomModelSerializer @@ -164,6 +164,33 @@ class RoleApiPermissionInitSerializer(CustomModelSerializer): 'dept_belong_id': {'write_only': True} } +class RoleColumnInitSerializer(CustomModelSerializer): + """ + 初始化角色字段权限(用于生成初始化json文件) + """ + role_key = serializers.CharField(max_length=100, required=True) + app = serializers.CharField(max_length=255, required=True) + model = serializers.CharField(max_length=255, required=True) + field_name = serializers.CharField(max_length=255, required=True) + title = serializers.CharField(max_length=255, required=True) + + def create(self, validated_data): + init_data = self.initial_data + validated_data.pop('role_key') + role_id = Role.objects.filter(key=init_data['role_key']).first() + validated_data['role'] = role_id + instance = super().create(validated_data) + return instance + + class Meta: + model = Columns + fields = ['role_key', 'app','model','field_name', 'title'] + read_only_fields = ["id"] + extra_kwargs = { + 'role': {'required': False}, + 'creator': {'write_only': True}, + 'dept_belong_id': {'write_only': True} + } class ApiWhiteListInitSerializer(CustomModelSerializer): """ diff --git a/backend/dvadmin/system/fixtures/init_columns.json b/backend/dvadmin/system/fixtures/init_columns.json new file mode 100644 index 0000000..ab33b70 --- /dev/null +++ b/backend/dvadmin/system/fixtures/init_columns.json @@ -0,0 +1,123 @@ +[ + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "id", + "title": "Id", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "description", + "title": "描述", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "creator", + "title": "创建人", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "modifier", + "title": "修改人", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "dept_belong_id", + "title": "数据归属部门", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "update_datetime", + "title": "修改时间", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "create_datetime", + "title": "创建时间", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "name", + "title": "角色名称", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "key", + "title": "权限字符", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "sort", + "title": "角色顺序", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + }, + { + "dept_belong_id": "1", + "app": "dvadmin.system", + "model": "Role", + "field_name": "status", + "title": "角色状态", + "is_query": 1, + "is_create": 1, + "is_update": 1, + "role_key": "admin" + } +] \ No newline at end of file diff --git a/backend/dvadmin/system/fixtures/initialize.py b/backend/dvadmin/system/fixtures/initialize.py index a047418..7a99757 100644 --- a/backend/dvadmin/system/fixtures/initialize.py +++ b/backend/dvadmin/system/fixtures/initialize.py @@ -11,7 +11,7 @@ from dvadmin.utils.core_initialize import CoreInitialize from dvadmin.system.fixtures.initSerializer import ( UsersInitSerializer, DeptInitSerializer, RoleInitSerializer, MenuInitSerializer, ApiWhiteListInitSerializer, DictionaryInitSerializer, - SystemConfigInitSerializer, RoleMenuInitSerializer, RoleApiPermissionInitSerializer + SystemConfigInitSerializer, RoleMenuInitSerializer, RoleApiPermissionInitSerializer, RoleColumnInitSerializer ) @@ -53,6 +53,12 @@ class Initialize(CoreInitialize): """ self.init_base(RoleApiPermissionInitSerializer, unique_fields=['role', 'api','name']) + def init_role_column(self): + """ + 初始化角色字段权限 + """ + self.init_base(RoleColumnInitSerializer, unique_fields=['app','model','field_name']) + def init_api_white_list(self): """ 初始API白名单 @@ -78,6 +84,7 @@ class Initialize(CoreInitialize): self.init_menu() self.init_role_menu() self.init_role_api_permission() + self.init_role_column() self.init_api_white_list() self.init_dictionary() self.init_system_config()