diff --git a/domain/adapters/api.py b/domain/adapters/api.py index 54d1e24..3a15bc4 100644 --- a/domain/adapters/api.py +++ b/domain/adapters/api.py @@ -30,10 +30,8 @@ async def create_adapter( @router.get("") -@audit(action=AuditAction.READ, description="获取适配器列表") @require_system_permission(AdapterPermission.LIST) async def list_adapters( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)] ): adapters = await AdapterService.list_adapters() @@ -41,10 +39,8 @@ async def list_adapters( @router.get("/available") -@audit(action=AuditAction.READ, description="获取可用适配器类型") @require_system_permission(AdapterPermission.LIST) async def available_adapter_types( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)] ): data = await AdapterService.available_adapter_types() @@ -52,10 +48,8 @@ async def available_adapter_types( @router.get("/usage") -@audit(action=AuditAction.READ, description="获取适配器容量使用情况") @require_system_permission(AdapterPermission.LIST) async def list_adapter_usages( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)] ): usages = await AdapterService.list_adapter_usages() @@ -63,10 +57,8 @@ async def list_adapter_usages( @router.get("/{adapter_id}/usage") -@audit(action=AuditAction.READ, description="获取单个适配器容量使用情况") @require_system_permission(AdapterPermission.LIST) async def get_adapter_usage( - request: Request, adapter_id: int, current_user: Annotated[User, Depends(get_current_active_user)] ): @@ -75,10 +67,8 @@ async def get_adapter_usage( @router.get("/{adapter_id}") -@audit(action=AuditAction.READ, description="获取适配器详情") @require_system_permission(AdapterPermission.LIST) async def get_adapter( - request: Request, adapter_id: int, current_user: Annotated[User, Depends(get_current_active_user)] ): diff --git a/domain/ai/api.py b/domain/ai/api.py index 4d0674d..f7847fa 100644 --- a/domain/ai/api.py +++ b/domain/ai/api.py @@ -21,10 +21,8 @@ router_ai = APIRouter(prefix="/api/ai", tags=["ai"]) router_vector_db = APIRouter(prefix="/api/vector-db", tags=["vector-db"]) -@audit(action=AuditAction.READ, description="获取 AI 提供商列表") @router_ai.get("/providers") async def list_providers_endpoint( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)] ): providers = await AIProviderService.list_providers() @@ -47,10 +45,8 @@ async def create_provider( return success(provider) -@audit(action=AuditAction.READ, description="获取 AI 提供商详情") @router_ai.get("/providers/{provider_id}") async def get_provider( - request: Request, provider_id: Annotated[int, Path(..., gt=0)], current_user: Annotated[User, Depends(get_current_active_user)], ): @@ -106,10 +102,8 @@ async def sync_models( return success(result) -@audit(action=AuditAction.READ, description="获取远程模型列表") @router_ai.get("/providers/{provider_id}/remote-models") async def fetch_remote_models( - request: Request, provider_id: Annotated[int, Path(..., gt=0)], current_user: Annotated[User, Depends(get_current_active_user)], ): @@ -123,10 +117,8 @@ async def fetch_remote_models( return success({"models": models}) -@audit(action=AuditAction.READ, description="获取模型列表") @router_ai.get("/providers/{provider_id}/models") async def list_models( - request: Request, provider_id: Annotated[int, Path(..., gt=0)], current_user: Annotated[User, Depends(get_current_active_user)], ): @@ -187,10 +179,8 @@ def _get_embedding_dimension(entry: Optional[Dict]) -> Optional[int]: return int(value) if value is not None else None -@audit(action=AuditAction.READ, description="获取默认模型") @router_ai.get("/defaults") async def get_defaults( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)], ): defaults = await AIProviderService.get_default_models() @@ -237,9 +227,8 @@ async def clear_vector_db(request: Request, user: User = Depends(get_current_act raise HTTPException(status_code=500, detail=str(e)) -@audit(action=AuditAction.READ, description="获取向量数据库统计") @router_vector_db.get("/stats", summary="获取向量数据库统计") -async def get_vector_db_stats(request: Request, user: User = Depends(get_current_active_user)): +async def get_vector_db_stats(user: User = Depends(get_current_active_user)): try: service = VectorDBService() data = await service.get_all_stats() @@ -248,15 +237,13 @@ async def get_vector_db_stats(request: Request, user: User = Depends(get_current raise HTTPException(status_code=500, detail=str(e)) -@audit(action=AuditAction.READ, description="获取向量数据库提供者列表") @router_vector_db.get("/providers", summary="列出可用向量数据库提供者") -async def list_vector_providers(request: Request): +async def list_vector_providers(): return success(list_providers()) -@audit(action=AuditAction.READ, description="获取向量数据库配置") @router_vector_db.get("/config", summary="获取当前向量数据库配置") -async def get_vector_db_config(request: Request, user: User = Depends(get_current_active_user)): +async def get_vector_db_config(user: User = Depends(get_current_active_user)): service = VectorDBService() data = await service.current_provider() return success(data) diff --git a/domain/auth/api.py b/domain/auth/api.py index 0f8ee5f..d1edbc7 100644 --- a/domain/auth/api.py +++ b/domain/auth/api.py @@ -40,9 +40,8 @@ async def login_for_access_token( @router.get("/me", summary="获取当前登录用户信息") -@audit(action=AuditAction.READ, description="获取当前用户信息") async def get_me( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)] + current_user: Annotated[User, Depends(get_current_active_user)] ): profile = AuthService.get_profile(current_user) return success(profile) diff --git a/domain/config/api.py b/domain/config/api.py index f7371f1..83c75cc 100644 --- a/domain/config/api.py +++ b/domain/config/api.py @@ -61,10 +61,7 @@ async def get_all_config( @router.get("/public") -@audit(action=AuditAction.READ, description="获取公开配置") -async def get_public_config( - request: Request, -): +async def get_public_config(): data = {} for key in PUBLIC_CONFIG_KEYS: value = await ConfigService.get(key) @@ -74,14 +71,12 @@ async def get_public_config( @router.get("/status") -@audit(action=AuditAction.READ, description="获取系统状态") -async def get_system_status(request: Request): +async def get_system_status(): status_data = await ConfigService.get_system_status() return success(status_data.model_dump()) @router.get("/latest-version") -@audit(action=AuditAction.READ, description="获取最新版本") -async def get_latest_version(request: Request): +async def get_latest_version(): info = await ConfigService.get_latest_version() return success(info.model_dump()) diff --git a/domain/email/api.py b/domain/email/api.py index e105cf5..ceb75d8 100644 --- a/domain/email/api.py +++ b/domain/email/api.py @@ -34,9 +34,7 @@ async def trigger_test_email( @router.get("/templates") -@audit(action=AuditAction.READ, description="获取邮件模板列表") async def list_email_templates( - request: Request, current_user: User = Depends(get_current_active_user), ): templates = await EmailTemplateRenderer.list_templates() @@ -44,9 +42,7 @@ async def list_email_templates( @router.get("/templates/{name}") -@audit(action=AuditAction.READ, description="查看邮件模板") async def get_email_template( - request: Request, name: str, current_user: User = Depends(get_current_active_user), ): @@ -75,9 +71,7 @@ async def update_email_template( @router.post("/templates/{name}/preview") -@audit(action=AuditAction.READ, description="预览邮件模板") async def preview_email_template( - request: Request, name: str, payload: EmailTemplatePreviewPayload, current_user: User = Depends(get_current_active_user), diff --git a/domain/offline_downloads/api.py b/domain/offline_downloads/api.py index bc346d5..5df74bc 100644 --- a/domain/offline_downloads/api.py +++ b/domain/offline_downloads/api.py @@ -31,14 +31,12 @@ async def create_offline_download(request: Request, payload: OfflineDownloadCrea @router.get("/") -@audit(action=AuditAction.READ, description="获取离线下载列表") -async def list_offline_downloads(request: Request, current_user: CurrentUser): +async def list_offline_downloads(current_user: CurrentUser): data = OfflineDownloadService.list_downloads() return success(data) @router.get("/{task_id}") -@audit(action=AuditAction.READ, description="获取离线下载详情") -async def get_offline_download(task_id: str, request: Request, current_user: CurrentUser): +async def get_offline_download(task_id: str, current_user: CurrentUser): data = OfflineDownloadService.get_download(task_id) return success(data) diff --git a/domain/plugins/api.py b/domain/plugins/api.py index 8178b9b..33c470d 100644 --- a/domain/plugins/api.py +++ b/domain/plugins/api.py @@ -44,9 +44,7 @@ async def install_plugin( @router.get("", response_model=List[PluginOut]) -@audit(action=AuditAction.READ, description="获取插件列表") async def list_plugins( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)], ): """获取已安装的插件列表""" @@ -54,9 +52,7 @@ async def list_plugins( @router.get("/{key_or_id}", response_model=PluginOut) -@audit(action=AuditAction.READ, description="获取插件详情") async def get_plugin( - request: Request, key_or_id: str, current_user: Annotated[User, Depends(get_current_active_user)], ): diff --git a/domain/processors/api.py b/domain/processors/api.py index 755a6c8..4619095 100644 --- a/domain/processors/api.py +++ b/domain/processors/api.py @@ -22,9 +22,7 @@ router = APIRouter(prefix="/api/processors", tags=["processors"]) @router.get("") -@audit(action=AuditAction.READ, description="获取处理器列表") async def list_processors( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)], ): data = ProcessorService.list_processors() @@ -73,10 +71,8 @@ async def process_directory_with_processor( @router.get("/source/{processor_type}") -@audit(action=AuditAction.READ, description="获取处理器源码") @require_system_permission(SystemPermission.ROLE_MANAGE) async def get_processor_source( - request: Request, processor_type: str, current_user: Annotated[User, Depends(get_current_active_user)], ): diff --git a/domain/recent_files/api.py b/domain/recent_files/api.py index 92aa600..5d76f6f 100644 --- a/domain/recent_files/api.py +++ b/domain/recent_files/api.py @@ -1,9 +1,8 @@ from typing import Annotated -from fastapi import APIRouter, Depends, Query, Request +from fastapi import APIRouter, Depends, Query from api.response import success -from domain.audit import AuditAction, audit from domain.auth import User, get_current_active_user from .service import RecentFilesService @@ -13,9 +12,7 @@ router = APIRouter(prefix="/api/fs/recent", tags=["recent-files"]) @router.get("/") -@audit(action=AuditAction.READ, description="查看最近打开文件") async def list_recent_files( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)], limit: int = Query(20, ge=1, le=200, description="返回数量"), ): @@ -24,9 +21,7 @@ async def list_recent_files( @router.post("/") -@audit(action=AuditAction.CREATE, description="记录最近打开文件", body_fields=["path"]) async def record_recent_file( - request: Request, body: RecordRecentFileRequest, current_user: Annotated[User, Depends(get_current_active_user)], ): @@ -35,9 +30,7 @@ async def record_recent_file( @router.delete("/") -@audit(action=AuditAction.DELETE, description="清空最近打开文件") async def clear_recent_files( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)], ): data = await RecentFilesService.clear_recent_files(current_user.id) diff --git a/domain/share/api.py b/domain/share/api.py index 78d2883..5fb5421 100644 --- a/domain/share/api.py +++ b/domain/share/api.py @@ -48,9 +48,8 @@ async def create_share( @router.get("", response_model=List[ShareInfo]) -@audit(action=AuditAction.READ, description="获取我的分享列表") async def get_my_shares( - request: Request, current_user: Annotated[User, Depends(get_current_active_user)] + current_user: Annotated[User, Depends(get_current_active_user)] ): user_account = await UserAccount.get(id=current_user.id) shares = await ShareService.get_user_shares(user=user_account) diff --git a/domain/tasks/api.py b/domain/tasks/api.py index 3279f0a..9dea902 100644 --- a/domain/tasks/api.py +++ b/domain/tasks/api.py @@ -21,15 +21,13 @@ router = APIRouter( @router.get("/queue") -@audit(action=AuditAction.READ, description="获取任务队列状态") -async def get_task_queue_status(request: Request, current_user: CurrentUser): +async def get_task_queue_status(current_user: CurrentUser): payload = TaskService.get_queue_tasks() return success(payload) @router.get("/queue/settings") -@audit(action=AuditAction.READ, description="获取任务队列设置") -async def get_task_queue_settings(request: Request, current_user: CurrentUser): +async def get_task_queue_settings(current_user: CurrentUser): payload = TaskService.get_queue_settings() return success(payload.model_dump()) @@ -46,8 +44,7 @@ async def update_task_queue_settings(request: Request, settings: TaskQueueSettin @router.get("/queue/{task_id}") -@audit(action=AuditAction.READ, description="获取队列任务状态") -async def get_task_status(task_id: str, request: Request, current_user: CurrentUser): +async def get_task_status(task_id: str, current_user: CurrentUser): payload = TaskService.get_queue_task(task_id) return success(payload) @@ -72,15 +69,13 @@ async def create_task(request: Request, task_in: AutomationTaskCreate, user: Cur @router.get("/{task_id}") -@audit(action=AuditAction.READ, description="获取自动化任务详情") -async def get_task(task_id: int, request: Request, current_user: CurrentUser): +async def get_task(task_id: int, current_user: CurrentUser): task = await TaskService.get_task(task_id) return success(task) @router.get("/") -@audit(action=AuditAction.READ, description="获取自动化任务列表") -async def list_tasks(request: Request, current_user: CurrentUser): +async def list_tasks(current_user: CurrentUser): tasks = await TaskService.list_tasks() return success(tasks)