Merge pull request #725 from wanxunyang/fix/app-share-log
fix: standardize app list pagination and fix session log isolation
This commit is contained in:
@@ -95,7 +95,12 @@ def list_apps(
|
|||||||
if app_ids:
|
if app_ids:
|
||||||
items_orm = app_service.get_apps_by_ids(db, app_ids, workspace_id)
|
items_orm = app_service.get_apps_by_ids(db, app_ids, workspace_id)
|
||||||
items = [service._convert_to_schema(app, workspace_id) for app in items_orm]
|
items = [service._convert_to_schema(app, workspace_id) for app in items_orm]
|
||||||
return success(data=items)
|
# 返回标准分页格式
|
||||||
|
meta = PageMeta(page=1, pagesize=len(items), total=len(items), hasnext=False)
|
||||||
|
return success(data=PageData(page=meta, items=items))
|
||||||
|
# ids 为空时,返回空列表
|
||||||
|
meta = PageMeta(page=1, pagesize=0, total=0, hasnext=False)
|
||||||
|
return success(data=PageData(page=meta, items=[]))
|
||||||
|
|
||||||
# 正常分页查询
|
# 正常分页查询
|
||||||
items_orm, total = app_service.list_apps(
|
items_orm, total = app_service.list_apps(
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ def list_app_logs(
|
|||||||
- 支持按 user_id 筛选
|
- 支持按 user_id 筛选
|
||||||
- 支持按 is_draft 筛选(草稿会话 / 发布会话)
|
- 支持按 is_draft 筛选(草稿会话 / 发布会话)
|
||||||
- 按最新更新时间倒序排列
|
- 按最新更新时间倒序排列
|
||||||
|
- 所有人(包括共享者和被共享者)都只能查看自己的会话记录
|
||||||
"""
|
"""
|
||||||
workspace_id = current_user.current_workspace_id
|
workspace_id = current_user.current_workspace_id
|
||||||
|
|
||||||
@@ -48,6 +49,9 @@ def list_app_logs(
|
|||||||
Conversation.is_active.is_(True),
|
Conversation.is_active.is_(True),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 所有人只能查看自己的会话记录
|
||||||
|
stmt = stmt.where(Conversation.user_id == str(current_user.id))
|
||||||
|
|
||||||
if user_id:
|
if user_id:
|
||||||
stmt = stmt.where(Conversation.user_id == user_id)
|
stmt = stmt.where(Conversation.user_id == user_id)
|
||||||
|
|
||||||
@@ -86,6 +90,7 @@ def get_app_log_detail(
|
|||||||
|
|
||||||
- 返回会话基本信息 + 所有消息(按时间正序)
|
- 返回会话基本信息 + 所有消息(按时间正序)
|
||||||
- 消息 meta_data 包含模型名、token 用量等信息
|
- 消息 meta_data 包含模型名、token 用量等信息
|
||||||
|
- 所有人(包括共享者和被共享者)都只能查看自己的会话详情
|
||||||
"""
|
"""
|
||||||
workspace_id = current_user.current_workspace_id
|
workspace_id = current_user.current_workspace_id
|
||||||
|
|
||||||
@@ -100,6 +105,7 @@ def get_app_log_detail(
|
|||||||
Conversation.app_id == app_id,
|
Conversation.app_id == app_id,
|
||||||
Conversation.workspace_id == workspace_id,
|
Conversation.workspace_id == workspace_id,
|
||||||
Conversation.is_active.is_(True),
|
Conversation.is_active.is_(True),
|
||||||
|
Conversation.user_id == str(current_user.id),
|
||||||
)
|
)
|
||||||
).first()
|
).first()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user