From b8b14884bd4ba7adf961c5ca3cc04ad29fb7044f Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Sat, 7 Jun 2025 17:57:11 +0800 Subject: [PATCH] refactor: add application settings --- apps/common/constants/permission_constants.py | 11 +++++++++++ .../handle/impl/text/zip_split_handle.py | 19 +++++++++++++++---- apps/common/utils/common.py | 6 ++++-- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/apps/common/constants/permission_constants.py b/apps/common/constants/permission_constants.py index bd749f345..4c068a643 100644 --- a/apps/common/constants/permission_constants.py +++ b/apps/common/constants/permission_constants.py @@ -45,6 +45,7 @@ class Group(Enum): CHAT_USER_AUTH = "CHAT_USER_AUTH" OTHER = "OTHER" OVERVIEW = "OVERVIEW" + APPLICATION_ACCESS = "APPLICATION_ACCESS" class SystemGroup(Enum): @@ -612,6 +613,16 @@ class PermissionConstants(Enum): resource_permission_group_list=[ResourcePermissionGroup.VIEW], label=_('Public settings') ) + APPLICATION_ACCESS_READ = Permission(group=Group.APPLICATION_ACCESS, operate=Operate.READ, + role_list=[RoleConstants.ADMIN, RoleConstants.USER], + parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION], + resource_permission_group_list=[ResourcePermissionGroup.VIEW], + ) + APPLICATION_ACCESS_EDIT = Permission(group=Group.APPLICATION_ACCESS, operate=Operate.EDIT, + role_list=[RoleConstants.ADMIN, RoleConstants.USER], + parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION], + resource_permission_group_list=[ResourcePermissionGroup.VIEW], + ) SYSTEM_API_KEY_EDIT = Permission(group=Group.OTHER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN], diff --git a/apps/common/handle/impl/text/zip_split_handle.py b/apps/common/handle/impl/text/zip_split_handle.py index 6adfa4ce8..b7d8857ea 100644 --- a/apps/common/handle/impl/text/zip_split_handle.py +++ b/apps/common/handle/impl/text/zip_split_handle.py @@ -15,6 +15,7 @@ from urllib.parse import urljoin import uuid_utils.compat as uuid from charset_normalizer import detect +from django.db.models import QuerySet from django.utils.translation import gettext_lazy as _ from common.handle.base_split_handle import BaseSplitHandle @@ -38,6 +39,16 @@ class FileBufferHandle: return self.buffer +def save_image(image_list): + if image_list is not None and len(image_list) > 0: + exist_image_list = [str(i.get('id')) for i in + QuerySet(File).filter(id__in=[i.id for i in image_list]).values('id')] + save_image_list = [image for image in image_list if not exist_image_list.__contains__(str(image.id))] + save_image_list = list({img.id: img for img in save_image_list}.values()) + if len(save_image_list) > 0: + QuerySet(File).bulk_create(save_image_list) + + default_split_handle = TextSplitHandle() split_handles = [ HTMLSplitHandle(), @@ -82,20 +93,20 @@ def get_image_list(result_list: list, zip_files: List[str]): '/') else source_image_path) if not zip_files.__contains__(image_path): continue - if image_path.startswith('api/file/') or image_path.startswith('api/image/'): - image_id = image_path.replace('api/file/', '').replace('api/image/', '') + if image_path.startswith('oss/file/') or image_path.startswith('oss/image/'): + image_id = image_path.replace('oss/file/', '').replace('oss/image/', '') if is_valid_uuid(image_id): image_file_list.append({'source_file': image_path, 'image_id': image_id}) else: image_file_list.append({'source_file': image_path, 'image_id': new_image_id}) - content = content.replace(source_image_path, f'/api/image/{new_image_id}') + content = content.replace(source_image_path, f'/oss/image/{new_image_id}') p['content'] = content else: image_file_list.append({'source_file': image_path, 'image_id': new_image_id}) - content = content.replace(source_image_path, f'/api/image/{new_image_id}') + content = content.replace(source_image_path, f'/oss/image/{new_image_id}') p['content'] = content return image_file_list diff --git a/apps/common/utils/common.py b/apps/common/utils/common.py index 45fef0f22..00fc52094 100644 --- a/apps/common/utils/common.py +++ b/apps/common/utils/common.py @@ -24,6 +24,7 @@ from pydub import AudioSegment from ..database_model_manage.database_model_manage import DatabaseModelManage from ..exception.app_exception import AppApiException + def password_encrypt(row_password): """ 密码 md5加密 @@ -308,6 +309,7 @@ def restricted_loads(s): """Helper function analogous to pickle.loads().""" return RestrictedUnpickler(io.BytesIO(s)).load() + def flat_map(array: List[List]): """ 将二位数组转为一维数组 @@ -319,8 +321,8 @@ def flat_map(array: List[List]): result += e return result + def parse_image(content: str): - matches = re.finditer("!\[.*?\]\(\/api\/(image|file)\/.*?\)", content) + matches = re.finditer("!\[.*?\]\(\/oss\/(image|file)\/.*?\)", content) image_list = [match.group() for match in matches] return image_list -