refactor: add application settings

This commit is contained in:
wxg0103 2025-06-07 17:57:11 +08:00
parent cebdfd6123
commit b8b14884bd
3 changed files with 30 additions and 6 deletions

View File

@ -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],

View File

@ -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

View File

@ -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