From d44befeff094b7e7b8c3ab74fbd98610e119b8e9 Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Thu, 19 Jun 2025 10:35:21 +0800 Subject: [PATCH] Feat: admin audit (#5068) * add admin audit (#5041) * Test audit (#5058) * feat: operation index * fix: delete update vector * perf: Clear invalid data * perf: index * perf: cleare invalid data * index * perf: audit event * fix: schema enum * add audit.svg (#5060) Co-authored-by: dreamer6680 <146868355@qq.com> * update package * perf: audit * perf: code move * eslint * doc --------- Co-authored-by: gggaaallleee <91131304+gggaaallleee@users.noreply.github.com> Co-authored-by: dreamer6680 <1468683855@qq.com> Co-authored-by: dreamer6680 <146868355@qq.com> --- dev.md | 2 +- .../zh-cn/docs/development/upgrading/4914.md | 1 + .../guide/knowledge_base/third_dataset.md | 2 +- .../{operationLog => user/audit}/constants.ts | 35 ++- .../{operationLog => user/audit}/type.d.ts | 6 +- .../support/operationLog/addOperationLog.ts | 25 -- .../{operationLog => user/audit}/schema.ts | 8 +- .../{operationLog => user/audit}/util.ts | 61 ++++- .../web/components/common/Icon/constants.ts | 1 + .../common/Icon/icons/common/audit.svg | 1 + packages/web/i18n/en/account_team.json | 47 ++++ packages/web/i18n/zh-CN/account_team.json | 47 ++++ packages/web/i18n/zh-Hant/account_team.json | 46 ++++ .../support/user/audit}/constants.ts | 228 +++++++++++++----- projects/app/package.json | 2 +- .../ChatContainer/ChatBox/Input/ChatInput.tsx | 2 +- .../team/{OperationLog => Audit}/index.tsx | 24 +- .../processors/appProcessors.ts | 0 .../processors/commonProcessor.ts | 0 .../processors/datasetProcessors.ts | 0 .../processors/index.ts | 4 +- .../processors/teamProcessors.ts | 0 projects/app/src/pages/account/team/index.tsx | 6 +- projects/app/src/pages/api/core/app/copy.ts | 12 +- projects/app/src/pages/api/core/app/create.ts | 10 +- projects/app/src/pages/api/core/app/del.ts | 10 +- .../src/pages/api/core/app/folder/create.ts | 8 +- .../app/src/pages/api/core/app/getChatLogs.ts | 10 +- projects/app/src/pages/api/core/app/update.ts | 14 +- .../src/pages/api/core/app/version/publish.ts | 14 +- .../api/core/dataset/collection/create.ts | 10 +- .../collection/create/reTrainingCollection.ts | 10 +- .../api/core/dataset/collection/delete.ts | 10 +- .../api/core/dataset/collection/update.ts | 10 +- .../app/src/pages/api/core/dataset/create.ts | 10 +- .../src/pages/api/core/dataset/data/delete.ts | 10 +- .../pages/api/core/dataset/data/insertData.ts | 10 +- .../src/pages/api/core/dataset/data/update.ts | 10 +- .../app/src/pages/api/core/dataset/delete.ts | 10 +- .../pages/api/core/dataset/folder/create.ts | 8 +- .../src/pages/api/core/dataset/searchTest.ts | 10 +- .../app/src/pages/api/core/dataset/update.ts | 14 +- .../src/pages/api/support/openapi/create.ts | 8 +- .../src/pages/api/support/openapi/delete.ts | 8 +- .../src/pages/api/support/openapi/update.ts | 8 +- .../src/pages/api/support/outLink/create.ts | 10 +- .../src/pages/api/support/outLink/delete.ts | 10 +- .../src/pages/api/support/outLink/update.ts | 10 +- .../support/user/account/loginByPassword.ts | 8 +- .../user/account/updatePasswordByOld.ts | 8 +- .../user/team/limit/exportDatasetLimit.ts | 10 +- .../support/user/team/operantionLog/api.ts | 12 +- test/mocks/index.ts | 6 +- 53 files changed, 580 insertions(+), 266 deletions(-) rename packages/global/support/{operationLog => user/audit}/constants.ts (62%) rename packages/global/support/{operationLog => user/audit}/type.d.ts (72%) delete mode 100644 packages/service/support/operationLog/addOperationLog.ts rename packages/service/support/{operationLog => user/audit}/schema.ts (77%) rename packages/service/support/{operationLog => user/audit}/util.ts (57%) create mode 100644 packages/web/components/common/Icon/icons/common/audit.svg rename packages/{service/support/operationLog => web/support/user/audit}/constants.ts (60%) rename projects/app/src/pageComponents/account/team/{OperationLog => Audit}/index.tsx (88%) rename projects/app/src/pageComponents/account/team/{OperationLog => Audit}/processors/appProcessors.ts (100%) rename projects/app/src/pageComponents/account/team/{OperationLog => Audit}/processors/commonProcessor.ts (100%) rename projects/app/src/pageComponents/account/team/{OperationLog => Audit}/processors/datasetProcessors.ts (100%) rename projects/app/src/pageComponents/account/team/{OperationLog => Audit}/processors/index.ts (63%) rename projects/app/src/pageComponents/account/team/{OperationLog => Audit}/processors/teamProcessors.ts (100%) diff --git a/dev.md b/dev.md index 3841a92ed..1601af25c 100644 --- a/dev.md +++ b/dev.md @@ -101,7 +101,7 @@ export default staticContent; ## audit -Please fill the OperationLogEventEnum and operationLog/audit function is added to the ts, and on the corresponding position to fill i18n, at the same time to add the location of the log using addOpearationLog function add function +Please fill the AuditEventEnum and audit function is added to the ts, and on the corresponding position to fill i18n, at the same time to add the location of the log using addOpearationLog function add function ## Build diff --git a/docSite/content/zh-cn/docs/development/upgrading/4914.md b/docSite/content/zh-cn/docs/development/upgrading/4914.md index cab5ef3e3..78d0d725d 100644 --- a/docSite/content/zh-cn/docs/development/upgrading/4914.md +++ b/docSite/content/zh-cn/docs/development/upgrading/4914.md @@ -11,6 +11,7 @@ weight: 787 ## 🚀 新增内容 1. 知识库导入,支持配置:自动将文件名加入系统索引中。 +2. Admin 端审计日志。 ## ⚙️ 优化 diff --git a/docSite/content/zh-cn/docs/guide/knowledge_base/third_dataset.md b/docSite/content/zh-cn/docs/guide/knowledge_base/third_dataset.md index dc93dd5fd..f65e4b6fa 100644 --- a/docSite/content/zh-cn/docs/guide/knowledge_base/third_dataset.md +++ b/docSite/content/zh-cn/docs/guide/knowledge_base/third_dataset.md @@ -78,7 +78,7 @@ export type YuqueServer = { ![](/imgs/thirddataset-5.png) -`FastGPT\packages\service\support\operationLog\util.ts`文件下添加如下内容,以支持获取 I18n 翻译。 +`FastGPT\packages\service\support\user/audit\util.ts`文件下添加如下内容,以支持获取 I18n 翻译。 ![](/imgs/thirddataset-6.png) diff --git a/packages/global/support/operationLog/constants.ts b/packages/global/support/user/audit/constants.ts similarity index 62% rename from packages/global/support/operationLog/constants.ts rename to packages/global/support/user/audit/constants.ts index 168f18d79..635542c0f 100644 --- a/packages/global/support/operationLog/constants.ts +++ b/packages/global/support/user/audit/constants.ts @@ -1,4 +1,30 @@ -export enum OperationLogEventEnum { +import type { auditLogMap, adminAuditLogMap } from '../../../../web/support/user/audit/constants'; + +export enum AdminAuditEventEnum { + ADMIN_LOGIN = 'ADMIN_LOGIN', + ADMIN_UPDATE_SYSTEM_MODAL = 'ADMIN_UPDATE_SYSTEM_MODAL', + ADMIN_SEND_SYSTEM_INFORM = 'ADMIN_SEND_SYSTEM_INFORM', + ADMIN_ADD_USER = 'ADMIN_ADD_USER', + ADMIN_UPDATE_USER = 'ADMIN_UPDATE_USER', + ADMIN_UPDATE_TEAM = 'ADMIN_UPDATE_TEAM', + ADMIN_ADD_PLAN = 'ADMIN_ADD_PLAN', + ADMIN_UPDATE_PLAN = 'ADMIN_UPDATE_PLAN', + ADMIN_FINISH_INVOICE = 'ADMIN_FINISH_INVOICE', + ADMIN_UPDATE_SYSTEM_CONFIG = 'ADMIN_UPDATE_SYSTEM_CONFIG', + ADMIN_CREATE_APP_TEMPLATE = 'ADMIN_CREATE_APP_TEMPLATE', + ADMIN_UPDATE_APP_TEMPLATE = 'ADMIN_UPDATE_APP_TEMPLATE', + ADMIN_DELETE_APP_TEMPLATE = 'ADMIN_DELETE_APP_TEMPLATE', + ADMIN_SAVE_TEMPLATE_TYPE = 'ADMIN_SAVE_TEMPLATE_TYPE', + ADMIN_DELETE_TEMPLATE_TYPE = 'ADMIN_DELETE_TEMPLATE_TYPE', + ADMIN_CREATE_PLUGIN = 'ADMIN_CREATE_PLUGIN', + ADMIN_UPDATE_PLUGIN = 'ADMIN_UPDATE_PLUGIN', + ADMIN_DELETE_PLUGIN = 'ADMIN_DELETE_PLUGIN', + ADMIN_CREATE_PLUGIN_GROUP = 'ADMIN_CREATE_PLUGIN_GROUP', + ADMIN_UPDATE_PLUGIN_GROUP = 'ADMIN_UPDATE_PLUGIN_GROUP', + ADMIN_DELETE_PLUGIN_GROUP = 'ADMIN_DELETE_PLUGIN_GROUP' +} + +export enum AuditEventEnum { //Team LOGIN = 'LOGIN', CREATE_INVITATION_LINK = 'CREATE_INVITATION_LINK', @@ -61,3 +87,10 @@ export enum OperationLogEventEnum { UPDATE_API_KEY = 'UPDATE_API_KEY', DELETE_API_KEY = 'DELETE_API_KEY' } + +export type AuditEventParamsType = { + [K in AuditEventEnum]: (typeof auditLogMap)[K]['params']; +}; +export type AdminAuditEventParamsType = { + [K in AdminAuditEventEnum]: (typeof adminAuditLogMap)[K]['params']; +}; diff --git a/packages/global/support/operationLog/type.d.ts b/packages/global/support/user/audit/type.d.ts similarity index 72% rename from packages/global/support/operationLog/type.d.ts rename to packages/global/support/user/audit/type.d.ts index ec1fea005..099745c61 100644 --- a/packages/global/support/operationLog/type.d.ts +++ b/packages/global/support/user/audit/type.d.ts @@ -1,19 +1,19 @@ import type { SourceMemberType } from '../user/type'; -import type { OperationLogEventEnum } from './constants'; +import type { AuditEventEnum } from './constants'; export type OperationLogSchema = { _id: string; tmbId: string; teamId: string; timestamp: Date; - event: `${OperationLogEventEnum}`; + event: `${AuditEventEnum}`; metadata?: Record; }; export type OperationListItemType = { _id: string; sourceMember: SourceMemberType; - event: `${OperationLogEventEnum}`; + event: `${AuditEventEnum}`; timestamp: Date; metadata: Record; }; diff --git a/packages/service/support/operationLog/addOperationLog.ts b/packages/service/support/operationLog/addOperationLog.ts deleted file mode 100644 index 9151c0598..000000000 --- a/packages/service/support/operationLog/addOperationLog.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { MongoOperationLog } from './schema'; -import type { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { type TemplateParamsMap } from './constants'; -import { retryFn } from '../../../global/common/system/utils'; - -export function addOperationLog({ - teamId, - tmbId, - event, - params -}: { - tmbId: string; - teamId: string; - event: T; - params?: TemplateParamsMap[T]; -}) { - retryFn(() => - MongoOperationLog.create({ - tmbId: tmbId, - teamId: teamId, - event, - metadata: params - }) - ); -} diff --git a/packages/service/support/operationLog/schema.ts b/packages/service/support/user/audit/schema.ts similarity index 77% rename from packages/service/support/operationLog/schema.ts rename to packages/service/support/user/audit/schema.ts index 894b5b570..8d1dc6373 100644 --- a/packages/service/support/operationLog/schema.ts +++ b/packages/service/support/user/audit/schema.ts @@ -1,6 +1,6 @@ -import { Schema, getMongoLogModel } from '../../common/mongo'; -import { type OperationLogSchema } from '@fastgpt/global/support/operationLog/type'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import { Schema, getMongoLogModel } from '../../../common/mongo'; +import { type OperationLogSchema } from '@fastgpt/global/support/user/audit/type'; +import { AdminAuditEventEnum, AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; import { TeamCollectionName, TeamMemberCollectionName @@ -25,7 +25,7 @@ const OperationLogSchema = new Schema({ }, event: { type: String, - enum: Object.values(OperationLogEventEnum), + enum: [...Object.values(AuditEventEnum), ...Object.values(AdminAuditEventEnum)], required: true }, metadata: { diff --git a/packages/service/support/operationLog/util.ts b/packages/service/support/user/audit/util.ts similarity index 57% rename from packages/service/support/operationLog/util.ts rename to packages/service/support/user/audit/util.ts index bfb2c5af4..9e04d2a45 100644 --- a/packages/service/support/operationLog/util.ts +++ b/packages/service/support/user/audit/util.ts @@ -1,6 +1,14 @@ import { AppTypeEnum } from '@fastgpt/global/core/app/constants'; import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants'; -import { i18nT } from '../../../web/i18n/utils'; +import { i18nT } from '../../../../web/i18n/utils'; +import { MongoOperationLog } from './schema'; +import type { + AdminAuditEventEnum, + AuditEventEnum, + AdminAuditEventParamsType, + AuditEventParamsType +} from '@fastgpt/global/support/user/audit/constants'; +import { retryFn } from '@fastgpt/global/common/system/utils'; export function getI18nAppType(type: AppTypeEnum): string { if (type === AppTypeEnum.folder) return i18nT('account_team:type.Folder'); @@ -34,3 +42,54 @@ export function getI18nDatasetType(type: DatasetTypeEnum | string): string { if (type === DatasetTypeEnum.yuque) return i18nT('account_team:dataset.yuque_dataset'); return i18nT('common:UnKnow'); } + +export function getI18nInformLevel(level: string): string { + if (level === 'common') return i18nT('account_team:inform_level_common'); + if (level === 'important') return i18nT('account_team:inform_level_important'); + if (level === 'emergency') return i18nT('account_team:inform_level_emergency'); + return i18nT('common:UnKnow'); +} + +export function addAuditLog({ + teamId, + tmbId, + event, + params +}: { + tmbId: string; + teamId: string; + event: T; + params?: AuditEventParamsType[T]; +}): void; + +export function addAuditLog({ + teamId, + tmbId, + event, + params +}: { + tmbId: string; + teamId: string; + event: T; + params?: AdminAuditEventParamsType[T]; +}): void; +export function addAuditLog({ + teamId, + tmbId, + event, + params +}: { + tmbId: string; + teamId: string; + event: T; + params?: any; +}) { + retryFn(() => + MongoOperationLog.create({ + tmbId: tmbId, + teamId: teamId, + event, + metadata: params + }) + ); +} diff --git a/packages/web/components/common/Icon/constants.ts b/packages/web/components/common/Icon/constants.ts index 0f8cd8ef1..d348740fd 100644 --- a/packages/web/components/common/Icon/constants.ts +++ b/packages/web/components/common/Icon/constants.ts @@ -20,6 +20,7 @@ export const iconPaths = { 'common/addLight': () => import('./icons/common/addLight.svg'), 'common/addUser': () => import('./icons/common/addUser.svg'), 'common/administrator': () => import('./icons/common/administrator.svg'), + 'common/audit': () => import('./icons/common/audit.svg'), 'common/alipay': () => import('./icons/common/alipay.svg'), 'common/app': () => import('./icons/common/app.svg'), 'common/arrowLeft': () => import('./icons/common/arrowLeft.svg'), diff --git a/packages/web/components/common/Icon/icons/common/audit.svg b/packages/web/components/common/Icon/icons/common/audit.svg new file mode 100644 index 000000000..53e1cf81d --- /dev/null +++ b/packages/web/components/common/Icon/icons/common/audit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/web/i18n/en/account_team.json b/packages/web/i18n/en/account_team.json index 0ea991ac1..80d1dbacd 100644 --- a/packages/web/i18n/en/account_team.json +++ b/packages/web/i18n/en/account_team.json @@ -5,6 +5,28 @@ "7days": "7 Days", "accept": "accept", "action": "operate", + "admin_add_plan": "Add a team package", + "admin_add_user": "Add a user", + "admin_change_license": "Change of license", + "admin_create_app_template": "Add a template", + "admin_create_plugin": "Add plugins", + "admin_create_plugin_group": "Create plugin grouping", + "admin_delete_app_template": "Delete the template", + "admin_delete_plugin": "Plugin Delete", + "admin_delete_plugin_group": "Delete plugin grouping", + "admin_delete_template_type": "Delete template classification", + "admin_finish_invoice": "Issuing an invoice", + "admin_login": "Administrator login", + "admin_save_template_type": "Update template classification", + "admin_send_system_inform": "Send system notifications", + "admin_update_app_template": "Update templates", + "admin_update_plan": "Editorial Team Package", + "admin_update_plugin": "Plugin Update", + "admin_update_plugin_group": "Plugin group update", + "admin_update_system_config": "System configuration update", + "admin_update_system_modal": "System announcement configuration", + "admin_update_team": "Edit team information", + "admin_update_user": "Edit User", "assign_permission": "Permission change", "audit_log": "audit", "change_department_name": "Department Editor", @@ -73,6 +95,9 @@ "has_forbidden": "Forbidden", "has_invited": "Invited", "ignore": "Ignore", + "inform_level_common": "Normal", + "inform_level_emergency": "Emergency", + "inform_level_important": "Important", "invitation_copy_link": "[{{systemName}}] {{userName}} invites you to join the {{teamName}} team, link: {{url}}", "invitation_link_auto_clean_hint": "Expired links will be automatically cleaned up after 30 days", "invitation_link_description": "Link description", @@ -85,6 +110,28 @@ "label_sync": "Tag sync", "leave": "Resigned", "leave_team_failed": "Leaving the team exception", + "log_admin_add_plan": "【{{name}}】A package will be added to a team with a team id [{{teamId}}]", + "log_admin_add_user": "【{{name}}】Create a user named [{{userName}}]", + "log_admin_change_license": "【{{name}}】Changed License", + "log_admin_create_app_template": "【{{name}}】Added a template named [{{templateName}}]", + "log_admin_create_plugin": "【{{name}}】Added plugin named [{{pluginName}}]", + "log_admin_create_plugin_group": "【{{name}}】Create a plug-in group called [{{groupName}}]", + "log_admin_delete_app_template": "【{{name}}】Deleted the template named [{{templateName}}]", + "log_admin_delete_plugin": "【{{name}}】Remove plugin named [{{pluginName}}]", + "log_admin_delete_plugin_group": "【{{name}}】Deleted plug-in grouping named [{{groupName}}]", + "log_admin_delete_template_type": "【{{name}}】Deleted the template classification named [{{typeName}}]", + "log_admin_finish_invoice": "【{{name}}】Issued an invoice to a team named [{{teamName}}]", + "log_admin_login": "【{{name}}】Logined in the administrator background", + "log_admin_save_template_type": "【{{name}}】Added template classification called [{{typeName}}]", + "log_admin_send_system_inform": "【{{name}}】Sent a system notification titled [{{informTitle}}], with the level of [{{level}}]", + "log_admin_update_app_template": "【{{name}}】Updated template information named [{{templateName}}]", + "log_admin_update_plan": "【{{name}}】Edited the package information of the team with the team id [{{teamId}}]", + "log_admin_update_plugin": "【{{name}}】Updated plugin information called [{{pluginName}}]", + "log_admin_update_plugin_group": "【{{name}}】Updated plug-in grouping called [{{groupName}}]", + "log_admin_update_system_config": "【{{name}}】Updated system configuration", + "log_admin_update_system_modal": "【{{name}}】The system announcement configuration was carried out", + "log_admin_update_team": "[{{name}}] Replace the team editing information named [{{teamName}}] to the team name: [{{newTeamName}}], balance: [{{newBalance}}]", + "log_admin_update_user": "Modify the user information of 【{{userName}}】", "log_assign_permission": "[{{name}}] Updated the permissions of [{{objectName}}]: [Application creation: [{{appCreate}}], Knowledge Base: [{{datasetCreate}}], API Key: [{{apiKeyCreate}}], Management: [{{manage}}]]", "log_change_department": "【{{name}}】Updated department【{{departmentName}}】", "log_change_member_name": "【{{name}}】Rename member [{{memberName}}] to 【{{newName}}】", diff --git a/packages/web/i18n/zh-CN/account_team.json b/packages/web/i18n/zh-CN/account_team.json index 9c5ab3359..81b3f7da0 100644 --- a/packages/web/i18n/zh-CN/account_team.json +++ b/packages/web/i18n/zh-CN/account_team.json @@ -5,6 +5,28 @@ "7days": "7天", "accept": "接受", "action": "操作", + "admin_add_plan": "添加团队套餐", + "admin_add_user": "添加用户", + "admin_change_license": "变更许可证", + "admin_create_app_template": "添加模板", + "admin_create_plugin": "添加插件", + "admin_create_plugin_group": "创建插件分组", + "admin_delete_app_template": "删除模板", + "admin_delete_plugin": "插件删除", + "admin_delete_plugin_group": "删除插件分组", + "admin_delete_template_type": "删除模板分类", + "admin_finish_invoice": "开具发票", + "admin_login": "管理员登录", + "admin_save_template_type": "更新模板分类", + "admin_send_system_inform": "发送系统通知", + "admin_update_app_template": "更新模板", + "admin_update_plan": "编辑团队套餐", + "admin_update_plugin": "插件更新", + "admin_update_plugin_group": "插件分组更新", + "admin_update_system_config": "系统配置更新", + "admin_update_system_modal": "系统公告配置", + "admin_update_team": "编辑团队信息", + "admin_update_user": "编辑用户信息", "assign_permission": "权限变更", "audit_log": "审计", "change_department_name": "部门编辑", @@ -74,6 +96,9 @@ "has_forbidden": "已失效", "has_invited": "已邀请", "ignore": "忽略", + "inform_level_common": "一般", + "inform_level_emergency": "紧急", + "inform_level_important": "重要", "invitation_copy_link": "【{{systemName}}】 {{userName}} 邀请您加入{{teamName}}团队,链接:{{url}}", "invitation_link_auto_clean_hint": "已失效链接将在30天后自动清理", "invitation_link_description": "链接描述", @@ -86,6 +111,28 @@ "label_sync": "标签同步", "leave": "已离职", "leave_team_failed": "离开团队异常", + "log_admin_add_plan": "【{{name}}】将给团队id为【{{teamId}}】的团队添加了套餐", + "log_admin_add_user": "【{{name}}】创建了一个名为【{{userName}}】的用户", + "log_admin_change_license": "【{{name}}】变更了License", + "log_admin_create_app_template": "【{{name}}】添加了名为【{{templateName}}】的模板", + "log_admin_create_plugin": "【{{name}}】添加了名为【{{pluginName}}】的插件", + "log_admin_create_plugin_group": "【{{name}}】创建了名为【{{groupName}}】的插件分组", + "log_admin_delete_app_template": "【{{name}}】删除了名为【{{templateName}}】的模板", + "log_admin_delete_plugin": "【{{name}}】删除了名为【{{pluginName}}】的插件", + "log_admin_delete_plugin_group": "【{{name}}】删除了名为【{{groupName}}】的插件分组", + "log_admin_delete_template_type": "【{{name}}】删除了名为【{{typeName}}】的模板分类", + "log_admin_finish_invoice": "【{{name}}】给名为【{{teamName}}】的团队开具了发票", + "log_admin_login": "【{{name}}】登录了管理员后台", + "log_admin_save_template_type": "【{{name}}】添加了名为【{{typeName}}】的模板分类", + "log_admin_send_system_inform": "【{{name}}】发送了标题为【{{informTitle}}】的系统通知,等级为【{{level}}】", + "log_admin_update_app_template": "【{{name}}】更新了名为【{{templateName}}】的模板信息", + "log_admin_update_plan": "【{{name}}】编辑了团队id为【{{teamId}}】的团队的套餐信息", + "log_admin_update_plugin": "【{{name}}】更新了名为【{{pluginName}}】的插件信息", + "log_admin_update_plugin_group": "【{{name}}】更新了名为【{{groupName}}】的插件分组", + "log_admin_update_system_config": "【{{name}}】更新了系统配置", + "log_admin_update_system_modal": "【{{name}}】进行了系统公告配置", + "log_admin_update_team": "【{{name}}】将名为【{{teamName}}】的团队编辑信息为团队名:【{{newTeamName}}】,余额:【{{newBalance}}】", + "log_admin_update_user": "修改【{{userName}}】的用户信息", "log_assign_permission": "【{{name}}】更新了【{{objectName}}】的权限:[应用创建:【{{appCreate}}】, 知识库:【{{datasetCreate}}】, API密钥:【{{apiKeyCreate}}】, 管理:【{{manage}}】]", "log_change_department": "【{{name}}】更新了部门【{{departmentName}}】", "log_change_member_name": "【{{name}}】将成员【{{memberName}}】重命名为【{{newName}}】", diff --git a/packages/web/i18n/zh-Hant/account_team.json b/packages/web/i18n/zh-Hant/account_team.json index a1c585b78..31a641702 100644 --- a/packages/web/i18n/zh-Hant/account_team.json +++ b/packages/web/i18n/zh-Hant/account_team.json @@ -5,6 +5,27 @@ "7days": "7 天", "accept": "接受", "action": "操作", + "admin_add_plan": "添加團隊套餐", + "admin_add_user": "添加用戶", + "admin_change_license": "變更許可證", + "admin_create_app_template": "添加模板", + "admin_create_plugin": "添加插件", + "admin_create_plugin_group": "創建插件分組", + "admin_delete_app_template": "刪除模板", + "admin_delete_plugin": "插件刪除", + "admin_delete_plugin_group": "刪除插件分組", + "admin_delete_template_type": "刪除模板分類", + "admin_finish_invoice": "開具發票", + "admin_login": "管理員登錄", + "admin_send_system_inform": "發送系統通知", + "admin_update_app_template": "更新模板", + "admin_update_plan": "編輯團隊套餐", + "admin_update_plugin": "插件更新", + "admin_update_plugin_group": "插件分組更新", + "admin_update_system_config": "系統配置更新", + "admin_update_system_modal": "系統公告配置", + "admin_update_team": "編輯團隊信息", + "admin_update_user": "編輯用戶信息", "assign_permission": "權限變更", "audit_log": "審計", "change_department_name": "部門編輯", @@ -73,6 +94,9 @@ "has_forbidden": "已失效", "has_invited": "已邀請", "ignore": "忽略", + "inform_level_common": "一般", + "inform_level_emergency": "緊急", + "inform_level_important": "重要", "invitation_copy_link": "【{{systemName}}】 {{userName}} 邀請您加入{{teamName}}團隊,連結:{{url}}", "invitation_link_auto_clean_hint": "已失效連結將在 30 天後自動清理", "invitation_link_description": "連結描述", @@ -85,6 +109,28 @@ "label_sync": "標籤同步", "leave": "已離職", "leave_team_failed": "離開團隊異常", + "log_admin_add_plan": "【{{name}}】將給團隊id為【{{teamId}}】的團隊添加了套餐", + "log_admin_add_user": "【{{name}}】創建了一個名為【{{userName}}】的用戶", + "log_admin_change_license": "【{{name}}】變更了License", + "log_admin_create_app_template": "【{{name}}】添加了名為【{{templateName}}】的模板", + "log_admin_create_plugin": "【{{name}}】添加了名為【{{pluginName}}】的插件", + "log_admin_create_plugin_group": "【{{name}}】創建了名為【{{groupName}}】的插件分組", + "log_admin_delete_app_template": "【{{name}}】刪除了名為【{{templateName}}】的模板", + "log_admin_delete_plugin": "【{{name}}】刪除了名為【{{pluginName}}】的插件", + "log_admin_delete_plugin_group": "【{{name}}】刪除了名為【{{groupName}}】的插件分組", + "log_admin_delete_template_type": "【{{name}}】刪除了名為【{{typeName}}】的模板分類", + "log_admin_finish_invoice": "【{{name}}】給名為【{{teamName}}】的團隊開具了發票", + "log_admin_login": "【{{name}}】登錄了管理員後台", + "log_admin_save_template_type": "【{{name}}】添加了名為【{{typeName}}】的模板分類", + "log_admin_send_system_inform": "【{{name}}】發送了標題為【{{informTitle}}】的系統通知,等級為【{{level}}】", + "log_admin_update_app_template": "【{{name}}】更新了名為【{{templateName}}】的模板信息", + "log_admin_update_plan": "【{{name}}】編輯了團隊id為【{{teamId}}】的團隊的套餐信息", + "log_admin_update_plugin": "【{{name}}】更新了名為【{{pluginName}}】的插件信息", + "log_admin_update_plugin_group": "【{{name}}】更新了名為【{{groupName}}】的插件分組", + "log_admin_update_system_config": "【{{name}}】更新了系統配置", + "log_admin_update_system_modal": "【{{name}}】進行了系統公告配置", + "log_admin_update_team": "【{{name}}】將名為【{{teamName}}】的團隊編輯信息為團隊名:【{{newTeamName}}】,餘額:【{{newBalance}}】", + "log_admin_update_user": "修改【{{userName}}】的用戶信息", "log_assign_permission": "【{{name}}】更新了【{{objectName}}】的權限:[應用創建:【{{appCreate}}】, 知識庫:【{{datasetCreate}}】, API密鑰:【{{apiKeyCreate}}】, 管理:【{{manage}}】]", "log_change_department": "【{{name}}】更新了部門【{{departmentName}}】", "log_change_member_name": "【{{name}}】將成員【{{memberName}}】重命名為【{{newName}}】", diff --git a/packages/service/support/operationLog/constants.ts b/packages/web/support/user/audit/constants.ts similarity index 60% rename from packages/service/support/operationLog/constants.ts rename to packages/web/support/user/audit/constants.ts index 9a67a3719..f0b17055b 100644 --- a/packages/service/support/operationLog/constants.ts +++ b/packages/web/support/user/audit/constants.ts @@ -1,80 +1,190 @@ -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { i18nT } from '../../../web/i18n/utils'; +import { AuditEventEnum, AdminAuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { i18nT } from '../../../i18n/utils'; -export const operationLogMap = { +export const adminAuditLogMap = { + [AdminAuditEventEnum.ADMIN_LOGIN]: { + content: i18nT('account_team:log_admin_login'), + typeLabel: i18nT('account_team:admin_login'), + params: {} as { name?: string } + }, + [AdminAuditEventEnum.ADMIN_UPDATE_SYSTEM_MODAL]: { + content: i18nT('account_team:log_admin_update_system_modal'), + typeLabel: i18nT('account_team:admin_update_system_modal'), + params: {} as { name?: string } + }, + [AdminAuditEventEnum.ADMIN_SEND_SYSTEM_INFORM]: { + content: i18nT('account_team:log_admin_send_system_inform'), + typeLabel: i18nT('account_team:admin_send_system_inform'), + params: {} as { name?: string; informTitle?: string; level?: string } + }, + [AdminAuditEventEnum.ADMIN_ADD_USER]: { + content: i18nT('account_team:log_admin_add_user'), + typeLabel: i18nT('account_team:admin_add_user'), + params: {} as { name?: string; userName: string } + }, + [AdminAuditEventEnum.ADMIN_UPDATE_USER]: { + content: i18nT('account_team:log_admin_update_user'), + typeLabel: i18nT('account_team:admin_update_user'), + params: {} as { + userName?: string; + } + }, + [AdminAuditEventEnum.ADMIN_UPDATE_TEAM]: { + content: i18nT('account_team:log_admin_update_team'), + typeLabel: i18nT('account_team:admin_update_team'), + params: {} as { name?: string; teamName: string; newTeamName: string; newBalance: string } + }, + [AdminAuditEventEnum.ADMIN_ADD_PLAN]: { + content: i18nT('account_team:log_admin_add_plan'), + typeLabel: i18nT('account_team:admin_add_plan'), + params: {} as { name?: string; teamId: string } + }, + [AdminAuditEventEnum.ADMIN_UPDATE_PLAN]: { + content: i18nT('account_team:log_admin_update_plan'), + typeLabel: i18nT('account_team:admin_update_plan'), + params: {} as { name?: string; teamId: string } + }, + [AdminAuditEventEnum.ADMIN_FINISH_INVOICE]: { + content: i18nT('account_team:log_admin_finish_invoice'), + typeLabel: i18nT('account_team:admin_finish_invoice'), + params: {} as { name?: string; teamName: string } + }, + [AdminAuditEventEnum.ADMIN_UPDATE_SYSTEM_CONFIG]: { + content: i18nT('account_team:log_admin_update_system_config'), + typeLabel: i18nT('account_team:admin_update_system_config'), + params: {} as { name?: string } + }, + [AdminAuditEventEnum.ADMIN_CREATE_APP_TEMPLATE]: { + content: i18nT('account_team:log_admin_create_app_template'), + typeLabel: i18nT('account_team:admin_create_app_template'), + params: {} as { name?: string; templateName: string } + }, + [AdminAuditEventEnum.ADMIN_UPDATE_APP_TEMPLATE]: { + content: i18nT('account_team:log_admin_update_app_template'), + typeLabel: i18nT('account_team:admin_update_app_template'), + params: {} as { name?: string; templateName: string } + }, + [AdminAuditEventEnum.ADMIN_DELETE_APP_TEMPLATE]: { + content: i18nT('account_team:log_admin_delete_app_template'), + typeLabel: i18nT('account_team:admin_delete_app_template'), + params: {} as { name?: string; templateName: string } + }, + [AdminAuditEventEnum.ADMIN_SAVE_TEMPLATE_TYPE]: { + content: i18nT('account_team:log_admin_save_template_type'), + typeLabel: i18nT('account_team:admin_save_template_type'), + params: {} as { name?: string; typeName: string } + }, + [AdminAuditEventEnum.ADMIN_DELETE_TEMPLATE_TYPE]: { + content: i18nT('account_team:log_admin_delete_template_type'), + typeLabel: i18nT('account_team:admin_delete_template_type'), + params: {} as { name?: string; typeName: string } + }, + [AdminAuditEventEnum.ADMIN_CREATE_PLUGIN]: { + content: i18nT('account_team:log_admin_create_plugin'), + typeLabel: i18nT('account_team:admin_create_plugin'), + params: {} as { name?: string; pluginName: string } + }, + [AdminAuditEventEnum.ADMIN_UPDATE_PLUGIN]: { + content: i18nT('account_team:log_admin_update_plugin'), + typeLabel: i18nT('account_team:admin_update_plugin'), + params: {} as { name?: string; pluginName: string } + }, + [AdminAuditEventEnum.ADMIN_DELETE_PLUGIN]: { + content: i18nT('account_team:log_admin_delete_plugin'), + typeLabel: i18nT('account_team:admin_delete_plugin'), + params: {} as { name?: string; pluginName: string } + }, + [AdminAuditEventEnum.ADMIN_CREATE_PLUGIN_GROUP]: { + content: i18nT('account_team:log_admin_create_plugin_group'), + typeLabel: i18nT('account_team:admin_create_plugin_group'), + params: {} as { name?: string; groupName: string } + }, + [AdminAuditEventEnum.ADMIN_UPDATE_PLUGIN_GROUP]: { + content: i18nT('account_team:log_admin_update_plugin_group'), + typeLabel: i18nT('account_team:admin_update_plugin_group'), + params: {} as { name?: string; groupName: string } + }, + [AdminAuditEventEnum.ADMIN_DELETE_PLUGIN_GROUP]: { + content: i18nT('account_team:log_admin_delete_plugin_group'), + typeLabel: i18nT('account_team:admin_delete_plugin_group'), + params: {} as { name?: string; groupName: string } + } +}; + +export const auditLogMap = { //Team - [OperationLogEventEnum.LOGIN]: { + [AuditEventEnum.LOGIN]: { content: i18nT('account_team:log_login'), typeLabel: i18nT('account_team:login'), params: {} as { name?: string } }, - [OperationLogEventEnum.CREATE_INVITATION_LINK]: { + [AuditEventEnum.CREATE_INVITATION_LINK]: { content: i18nT('account_team:log_create_invitation_link'), typeLabel: i18nT('account_team:create_invitation_link'), params: {} as { name?: string; link: string } }, - [OperationLogEventEnum.JOIN_TEAM]: { + [AuditEventEnum.JOIN_TEAM]: { content: i18nT('account_team:log_join_team'), typeLabel: i18nT('account_team:join_team'), params: {} as { name?: string; link: string } }, - [OperationLogEventEnum.CHANGE_MEMBER_NAME]: { + [AuditEventEnum.CHANGE_MEMBER_NAME]: { content: i18nT('account_team:log_change_member_name'), typeLabel: i18nT('account_team:change_member_name'), params: {} as { name?: string; memberName: string; newName: string } }, - [OperationLogEventEnum.KICK_OUT_TEAM]: { + [AuditEventEnum.KICK_OUT_TEAM]: { content: i18nT('account_team:log_kick_out_team'), typeLabel: i18nT('account_team:kick_out_team'), params: {} as { name?: string; memberName: string } }, - [OperationLogEventEnum.RECOVER_TEAM_MEMBER]: { + [AuditEventEnum.RECOVER_TEAM_MEMBER]: { content: i18nT('account_team:log_recover_team_member'), typeLabel: i18nT('account_team:recover_team_member'), params: {} as { name?: string; memberName: string } }, - [OperationLogEventEnum.CREATE_DEPARTMENT]: { + [AuditEventEnum.CREATE_DEPARTMENT]: { content: i18nT('account_team:log_create_department'), typeLabel: i18nT('account_team:create_department'), params: {} as { name?: string; departmentName: string } }, - [OperationLogEventEnum.CHANGE_DEPARTMENT]: { + [AuditEventEnum.CHANGE_DEPARTMENT]: { content: i18nT('account_team:log_change_department'), typeLabel: i18nT('account_team:change_department_name'), params: {} as { name?: string; departmentName: string } }, - [OperationLogEventEnum.DELETE_DEPARTMENT]: { + [AuditEventEnum.DELETE_DEPARTMENT]: { content: i18nT('account_team:log_delete_department'), typeLabel: i18nT('account_team:delete_department'), params: {} as { name?: string; departmentName: string } }, - [OperationLogEventEnum.RELOCATE_DEPARTMENT]: { + [AuditEventEnum.RELOCATE_DEPARTMENT]: { content: i18nT('account_team:log_relocate_department'), typeLabel: i18nT('account_team:relocate_department'), params: {} as { name?: string; departmentName: string } }, - [OperationLogEventEnum.CREATE_GROUP]: { + [AuditEventEnum.CREATE_GROUP]: { content: i18nT('account_team:log_create_group'), typeLabel: i18nT('account_team:create_group'), params: {} as { name?: string; groupName: string } }, - [OperationLogEventEnum.DELETE_GROUP]: { + [AuditEventEnum.DELETE_GROUP]: { content: i18nT('account_team:log_delete_group'), typeLabel: i18nT('account_team:delete_group'), params: {} as { name?: string; groupName: string } }, - [OperationLogEventEnum.ASSIGN_PERMISSION]: { + [AuditEventEnum.ASSIGN_PERMISSION]: { content: i18nT('account_team:log_assign_permission'), typeLabel: i18nT('account_team:assign_permission'), params: {} as { name?: string; objectName: string; permission: string } }, //APP - [OperationLogEventEnum.CREATE_APP]: { + [AuditEventEnum.CREATE_APP]: { content: i18nT('account_team:log_create_app'), typeLabel: i18nT('account_team:create_app'), params: {} as { name?: string; appName: string; appType: string } }, - [OperationLogEventEnum.UPDATE_APP_INFO]: { + [AuditEventEnum.UPDATE_APP_INFO]: { content: i18nT('account_team:log_update_app_info'), typeLabel: i18nT('account_team:update_app_info'), params: {} as { @@ -85,17 +195,17 @@ export const operationLogMap = { appType: string; } }, - [OperationLogEventEnum.MOVE_APP]: { + [AuditEventEnum.MOVE_APP]: { content: i18nT('account_team:log_move_app'), typeLabel: i18nT('account_team:move_app'), params: {} as { name?: string; appName: string; targetFolderName: string; appType: string } }, - [OperationLogEventEnum.DELETE_APP]: { + [AuditEventEnum.DELETE_APP]: { content: i18nT('account_team:log_delete_app'), typeLabel: i18nT('account_team:delete_app'), params: {} as { name?: string; appName: string; appType: string } }, - [OperationLogEventEnum.UPDATE_APP_COLLABORATOR]: { + [AuditEventEnum.UPDATE_APP_COLLABORATOR]: { content: i18nT('account_team:log_update_app_collaborator'), typeLabel: i18nT('account_team:update_app_collaborator'), params: {} as { @@ -108,7 +218,7 @@ export const operationLogMap = { permission: string; } }, - [OperationLogEventEnum.DELETE_APP_COLLABORATOR]: { + [AuditEventEnum.DELETE_APP_COLLABORATOR]: { content: i18nT('account_team:log_delete_app_collaborator'), typeLabel: i18nT('account_team:delete_app_collaborator'), params: {} as { @@ -119,7 +229,7 @@ export const operationLogMap = { itemValueName: string; } }, - [OperationLogEventEnum.TRANSFER_APP_OWNERSHIP]: { + [AuditEventEnum.TRANSFER_APP_OWNERSHIP]: { content: i18nT('account_team:log_transfer_app_ownership'), typeLabel: i18nT('account_team:transfer_app_ownership'), params: {} as { @@ -130,17 +240,17 @@ export const operationLogMap = { newOwnerName: string; } }, - [OperationLogEventEnum.CREATE_APP_COPY]: { + [AuditEventEnum.CREATE_APP_COPY]: { content: i18nT('account_team:log_create_app_copy'), typeLabel: i18nT('account_team:create_app_copy'), params: {} as { name?: string; appName: string; appType: string } }, - [OperationLogEventEnum.CREATE_APP_FOLDER]: { + [AuditEventEnum.CREATE_APP_FOLDER]: { content: i18nT('account_team:log_create_app_folder'), typeLabel: i18nT('account_team:create_app_folder'), params: {} as { name?: string; folderName: string } }, - [OperationLogEventEnum.UPDATE_PUBLISH_APP]: { + [AuditEventEnum.UPDATE_PUBLISH_APP]: { content: i18nT('account_team:log_update_publish_app'), typeLabel: i18nT('account_team:update_publish_app'), params: {} as { @@ -151,43 +261,43 @@ export const operationLogMap = { appType: string; } }, - [OperationLogEventEnum.CREATE_APP_PUBLISH_CHANNEL]: { + [AuditEventEnum.CREATE_APP_PUBLISH_CHANNEL]: { content: i18nT('account_team:log_create_app_publish_channel'), typeLabel: i18nT('account_team:create_app_publish_channel'), params: {} as { name?: string; appName: string; channelName: string; appType: string } }, - [OperationLogEventEnum.UPDATE_APP_PUBLISH_CHANNEL]: { + [AuditEventEnum.UPDATE_APP_PUBLISH_CHANNEL]: { content: i18nT('account_team:log_update_app_publish_channel'), typeLabel: i18nT('account_team:update_app_publish_channel'), params: {} as { name?: string; appName: string; channelName: string; appType: string } }, - [OperationLogEventEnum.DELETE_APP_PUBLISH_CHANNEL]: { + [AuditEventEnum.DELETE_APP_PUBLISH_CHANNEL]: { content: i18nT('account_team:log_delete_app_publish_channel'), typeLabel: i18nT('account_team:delete_app_publish_channel'), params: {} as { name?: string; appName: string; channelName: string; appType: string } }, - [OperationLogEventEnum.EXPORT_APP_CHAT_LOG]: { + [AuditEventEnum.EXPORT_APP_CHAT_LOG]: { content: i18nT('account_team:log_export_app_chat_log'), typeLabel: i18nT('account_team:export_app_chat_log'), params: {} as { name?: string; appName: string; appType: string } }, //Dataset - [OperationLogEventEnum.CREATE_DATASET]: { + [AuditEventEnum.CREATE_DATASET]: { content: i18nT('account_team:log_create_dataset'), typeLabel: i18nT('account_team:create_dataset'), params: {} as { name?: string; datasetName: string; datasetType: string } }, - [OperationLogEventEnum.UPDATE_DATASET]: { + [AuditEventEnum.UPDATE_DATASET]: { content: i18nT('account_team:log_update_dataset'), typeLabel: i18nT('account_team:update_dataset'), params: {} as { name?: string; datasetName: string; datasetType: string } }, - [OperationLogEventEnum.DELETE_DATASET]: { + [AuditEventEnum.DELETE_DATASET]: { content: i18nT('account_team:log_delete_dataset'), typeLabel: i18nT('account_team:delete_dataset'), params: {} as { name?: string; datasetName: string; datasetType: string } }, - [OperationLogEventEnum.MOVE_DATASET]: { + [AuditEventEnum.MOVE_DATASET]: { content: i18nT('account_team:log_move_dataset'), typeLabel: i18nT('account_team:move_dataset'), params: {} as { @@ -197,7 +307,7 @@ export const operationLogMap = { datasetType: string; } }, - [OperationLogEventEnum.UPDATE_DATASET_COLLABORATOR]: { + [AuditEventEnum.UPDATE_DATASET_COLLABORATOR]: { content: i18nT('account_team:log_update_dataset_collaborator'), typeLabel: i18nT('account_team:update_dataset_collaborator'), params: {} as { @@ -210,7 +320,7 @@ export const operationLogMap = { permission: string; } }, - [OperationLogEventEnum.DELETE_DATASET_COLLABORATOR]: { + [AuditEventEnum.DELETE_DATASET_COLLABORATOR]: { content: i18nT('account_team:log_delete_dataset_collaborator'), typeLabel: i18nT('account_team:delete_dataset_collaborator'), params: {} as { @@ -221,7 +331,7 @@ export const operationLogMap = { itemValueName: string; } }, - [OperationLogEventEnum.TRANSFER_DATASET_OWNERSHIP]: { + [AuditEventEnum.TRANSFER_DATASET_OWNERSHIP]: { content: i18nT('account_team:log_transfer_dataset_ownership'), typeLabel: i18nT('account_team:transfer_dataset_ownership'), params: {} as { @@ -232,18 +342,18 @@ export const operationLogMap = { newOwnerName: string; } }, - [OperationLogEventEnum.EXPORT_DATASET]: { + [AuditEventEnum.EXPORT_DATASET]: { content: i18nT('account_team:log_export_dataset'), typeLabel: i18nT('account_team:export_dataset'), params: {} as { name?: string; datasetName: string; datasetType: string } }, - [OperationLogEventEnum.CREATE_DATASET_FOLDER]: { + [AuditEventEnum.CREATE_DATASET_FOLDER]: { content: i18nT('account_team:log_create_dataset_folder'), typeLabel: i18nT('account_team:create_dataset_folder'), params: {} as { name?: string; folderName: string } }, //Collection - [OperationLogEventEnum.CREATE_COLLECTION]: { + [AuditEventEnum.CREATE_COLLECTION]: { content: i18nT('account_team:log_create_collection'), typeLabel: i18nT('account_team:create_collection'), params: {} as { @@ -253,7 +363,7 @@ export const operationLogMap = { datasetType: string; } }, - [OperationLogEventEnum.UPDATE_COLLECTION]: { + [AuditEventEnum.UPDATE_COLLECTION]: { content: i18nT('account_team:log_update_collection'), typeLabel: i18nT('account_team:update_collection'), params: {} as { @@ -263,7 +373,7 @@ export const operationLogMap = { datasetType: string; } }, - [OperationLogEventEnum.DELETE_COLLECTION]: { + [AuditEventEnum.DELETE_COLLECTION]: { content: i18nT('account_team:log_delete_collection'), typeLabel: i18nT('account_team:delete_collection'), params: {} as { @@ -273,7 +383,7 @@ export const operationLogMap = { datasetType: string; } }, - [OperationLogEventEnum.RETRAIN_COLLECTION]: { + [AuditEventEnum.RETRAIN_COLLECTION]: { content: i18nT('account_team:log_retrain_collection'), typeLabel: i18nT('account_team:retrain_collection'), params: {} as { @@ -284,7 +394,7 @@ export const operationLogMap = { } }, //Data - [OperationLogEventEnum.CREATE_DATA]: { + [AuditEventEnum.CREATE_DATA]: { content: i18nT('account_team:log_create_data'), typeLabel: i18nT('account_team:create_data'), params: {} as { @@ -294,7 +404,7 @@ export const operationLogMap = { datasetType: string; } }, - [OperationLogEventEnum.UPDATE_DATA]: { + [AuditEventEnum.UPDATE_DATA]: { content: i18nT('account_team:log_update_data'), typeLabel: i18nT('account_team:update_data'), params: {} as { @@ -304,7 +414,7 @@ export const operationLogMap = { datasetType: string; } }, - [OperationLogEventEnum.DELETE_DATA]: { + [AuditEventEnum.DELETE_DATA]: { content: i18nT('account_team:log_delete_data'), typeLabel: i18nT('account_team:delete_data'), params: {} as { @@ -315,64 +425,60 @@ export const operationLogMap = { } }, //SearchTest - [OperationLogEventEnum.SEARCH_TEST]: { + [AuditEventEnum.SEARCH_TEST]: { content: i18nT('account_team:log_search_test'), typeLabel: i18nT('account_team:search_test'), params: {} as { name?: string; datasetName: string; datasetType: string } }, //Account - [OperationLogEventEnum.CHANGE_PASSWORD]: { + [AuditEventEnum.CHANGE_PASSWORD]: { content: i18nT('account_team:log_change_password'), typeLabel: i18nT('account_team:change_password'), params: {} as { name?: string } }, - [OperationLogEventEnum.CHANGE_NOTIFICATION_SETTINGS]: { + [AuditEventEnum.CHANGE_NOTIFICATION_SETTINGS]: { content: i18nT('account_team:log_change_notification_settings'), typeLabel: i18nT('account_team:change_notification_settings'), params: {} as { name?: string } }, - [OperationLogEventEnum.CHANGE_MEMBER_NAME_ACCOUNT]: { + [AuditEventEnum.CHANGE_MEMBER_NAME_ACCOUNT]: { content: i18nT('account_team:log_change_member_name_self'), typeLabel: i18nT('account_team:change_member_name_self'), params: {} as { name?: string; oldName: string; newName: string } }, - [OperationLogEventEnum.PURCHASE_PLAN]: { + [AuditEventEnum.PURCHASE_PLAN]: { content: i18nT('account_team:log_purchase_plan'), typeLabel: i18nT('account_team:purchase_plan'), params: {} as { name?: string } }, - [OperationLogEventEnum.EXPORT_BILL_RECORDS]: { + [AuditEventEnum.EXPORT_BILL_RECORDS]: { content: i18nT('account_team:log_export_bill_records'), typeLabel: i18nT('account_team:export_bill_records'), params: {} as { name?: string } }, - [OperationLogEventEnum.CREATE_INVOICE]: { + [AuditEventEnum.CREATE_INVOICE]: { content: i18nT('account_team:log_create_invoice'), typeLabel: i18nT('account_team:create_invoice'), params: {} as { name?: string } }, - [OperationLogEventEnum.SET_INVOICE_HEADER]: { + [AuditEventEnum.SET_INVOICE_HEADER]: { content: i18nT('account_team:log_set_invoice_header'), typeLabel: i18nT('account_team:set_invoice_header'), params: {} as { name?: string } }, - [OperationLogEventEnum.CREATE_API_KEY]: { + [AuditEventEnum.CREATE_API_KEY]: { content: i18nT('account_team:log_create_api_key'), typeLabel: i18nT('account_team:create_api_key'), params: {} as { name?: string; keyName: string } }, - [OperationLogEventEnum.UPDATE_API_KEY]: { + [AuditEventEnum.UPDATE_API_KEY]: { content: i18nT('account_team:log_update_api_key'), typeLabel: i18nT('account_team:update_api_key'), params: {} as { name?: string; keyName: string } }, - [OperationLogEventEnum.DELETE_API_KEY]: { + [AuditEventEnum.DELETE_API_KEY]: { content: i18nT('account_team:log_delete_api_key'), typeLabel: i18nT('account_team:delete_api_key'), params: {} as { name?: string; keyName: string } } } as const; - -export type TemplateParamsMap = { - [K in OperationLogEventEnum]: (typeof operationLogMap)[K]['params']; -}; diff --git a/projects/app/package.json b/projects/app/package.json index 557c916e2..4730dc226 100644 --- a/projects/app/package.json +++ b/projects/app/package.json @@ -1,6 +1,6 @@ { "name": "app", - "version": "4.9.12", + "version": "4.9.14", "private": false, "scripts": { "dev": "next dev", diff --git a/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/ChatInput.tsx b/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/ChatInput.tsx index 69908b949..9ecf7c5ad 100644 --- a/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/ChatInput.tsx +++ b/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/ChatInput.tsx @@ -1,4 +1,4 @@ -import type { FlexProps} from '@chakra-ui/react'; +import type { FlexProps } from '@chakra-ui/react'; import { Box, Flex, Textarea, useBoolean } from '@chakra-ui/react'; import React, { useRef, useCallback, useMemo, useState } from 'react'; import { useTranslation } from 'next-i18next'; diff --git a/projects/app/src/pageComponents/account/team/OperationLog/index.tsx b/projects/app/src/pageComponents/account/team/Audit/index.tsx similarity index 88% rename from projects/app/src/pageComponents/account/team/OperationLog/index.tsx rename to projects/app/src/pageComponents/account/team/Audit/index.tsx index 8a19a5f42..3174790ca 100644 --- a/projects/app/src/pageComponents/account/team/OperationLog/index.tsx +++ b/projects/app/src/pageComponents/account/team/Audit/index.tsx @@ -15,8 +15,8 @@ import { useTranslation } from 'next-i18next'; import MyBox from '@fastgpt/web/components/common/MyBox'; import { useScrollPagination } from '@fastgpt/web/hooks/useScrollPagination'; import { getOperationLogs } from '@/web/support/user/team/operantionLog/api'; -import { operationLogMap } from '@fastgpt/service/support/operationLog/constants'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import { auditLogMap } from '@fastgpt/web/support/user/audit/constants'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time'; import UserBox from '@fastgpt/web/components/common/UserBox'; import MultipleSelect, { @@ -27,11 +27,11 @@ import { getTeamMembers } from '@/web/support/user/team/api'; import { specialProcessors } from './processors'; import { defaultMetadataProcessor } from './processors/commonProcessor'; -function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) { +function AuditLog({ Tabs }: { Tabs: React.ReactNode }) { const { t } = useTranslation(); const [searchParams, setSearchParams] = useState<{ tmbIds?: string[]; - events?: OperationLogEventEnum[]; + events?: AuditEventEnum[]; }>({}); const { data: members, ScrollData } = useScrollPagination(getTeamMembers, {}); @@ -51,8 +51,8 @@ function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) { const eventOptions = useMemo( () => - Object.values(OperationLogEventEnum).map((event) => ({ - label: t(operationLogMap[event].typeLabel), + Object.values(AuditEventEnum).map((event) => ({ + label: t(auditLogMap[event].typeLabel), value: event })), [t] @@ -61,14 +61,14 @@ function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) { const processMetadataByEvent = useCallback( (event: string, metadata: any) => { const defaultFormat = defaultMetadataProcessor(metadata, t); - const specialFormat = specialProcessors[event as OperationLogEventEnum]?.(defaultFormat, t); + const specialFormat = specialProcessors[event as AuditEventEnum]?.(defaultFormat, t); return specialFormat || defaultFormat; }, [t] ); const { - data: operationLogs = [], + data: auditLog = [], isLoading: loadingLogs, ScrollData: LogScrollData } = useScrollPagination(getOperationLogs, { @@ -92,7 +92,7 @@ function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) { setValue: setSelectedEvents, isSelectAll: isSelectAllEvent, setIsSelectAll: setIsSelectAllEvent - } = useMultipleSelect( + } = useMultipleSelect( eventOptions.map((item) => item.value), true ); @@ -166,8 +166,8 @@ function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) { - {operationLogs?.map((log) => { - const i18nData = operationLogMap[log.event]; + {auditLog?.map((log) => { + const i18nData = auditLogMap[log.event]; const metadata = processMetadataByEvent(log.event, { ...log.metadata }); return i18nData ? ( @@ -195,4 +195,4 @@ function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) { ); } -export default OperationLogTable; +export default AuditLog; diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/appProcessors.ts b/projects/app/src/pageComponents/account/team/Audit/processors/appProcessors.ts similarity index 100% rename from projects/app/src/pageComponents/account/team/OperationLog/processors/appProcessors.ts rename to projects/app/src/pageComponents/account/team/Audit/processors/appProcessors.ts diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/commonProcessor.ts b/projects/app/src/pageComponents/account/team/Audit/processors/commonProcessor.ts similarity index 100% rename from projects/app/src/pageComponents/account/team/OperationLog/processors/commonProcessor.ts rename to projects/app/src/pageComponents/account/team/Audit/processors/commonProcessor.ts diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/datasetProcessors.ts b/projects/app/src/pageComponents/account/team/Audit/processors/datasetProcessors.ts similarity index 100% rename from projects/app/src/pageComponents/account/team/OperationLog/processors/datasetProcessors.ts rename to projects/app/src/pageComponents/account/team/Audit/processors/datasetProcessors.ts diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/index.ts b/projects/app/src/pageComponents/account/team/Audit/processors/index.ts similarity index 63% rename from projects/app/src/pageComponents/account/team/OperationLog/processors/index.ts rename to projects/app/src/pageComponents/account/team/Audit/processors/index.ts index baaa4e2fc..d6319db1c 100644 --- a/projects/app/src/pageComponents/account/team/OperationLog/processors/index.ts +++ b/projects/app/src/pageComponents/account/team/Audit/processors/index.ts @@ -1,10 +1,10 @@ -import type { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import type { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; import { createTeamProcessors } from './teamProcessors'; import { createAppProcessors } from './appProcessors'; import { createDatasetProcessors } from './datasetProcessors'; export type MetadataProcessor = (metadata: any, t: any) => any; -export const specialProcessors: Partial> = { +export const specialProcessors: Partial> = { ...createTeamProcessors, ...createAppProcessors, ...createDatasetProcessors diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/teamProcessors.ts b/projects/app/src/pageComponents/account/team/Audit/processors/teamProcessors.ts similarity index 100% rename from projects/app/src/pageComponents/account/team/OperationLog/processors/teamProcessors.ts rename to projects/app/src/pageComponents/account/team/Audit/processors/teamProcessors.ts diff --git a/projects/app/src/pages/account/team/index.tsx b/projects/app/src/pages/account/team/index.tsx index ceb7c3fb2..7bf2263c3 100644 --- a/projects/app/src/pages/account/team/index.tsx +++ b/projects/app/src/pages/account/team/index.tsx @@ -21,7 +21,7 @@ const MemberTable = dynamic(() => import('@/pageComponents/account/team/MemberTa const PermissionManage = dynamic( () => import('@/pageComponents/account/team/PermissionManage/index') ); -const OperationLogTable = dynamic(() => import('@/pageComponents/account/team/OperationLog/index')); +const AuditLog = dynamic(() => import('@/pageComponents/account/team/Audit/index')); const GroupManage = dynamic(() => import('@/pageComponents/account/team/GroupManage/index')); const OrgManage = dynamic(() => import('@/pageComponents/account/team/OrgManage/index')); const HandleInviteModal = dynamic( @@ -96,7 +96,7 @@ const Team = () => { }} /> ), - [router, t, teamTab] + [planContent?.permissionTeamOperationLog, router, t, teamTab, toast] ); return ( @@ -175,7 +175,7 @@ const Team = () => { {teamTab === TeamTabEnum.org && } {teamTab === TeamTabEnum.group && } {teamTab === TeamTabEnum.permission && } - {teamTab === TeamTabEnum.audit && } + {teamTab === TeamTabEnum.audit && } {invitelinkid && } diff --git a/projects/app/src/pages/api/core/app/copy.ts b/projects/app/src/pages/api/core/app/copy.ts index 17654ca18..3923981cc 100644 --- a/projects/app/src/pages/api/core/app/copy.ts +++ b/projects/app/src/pages/api/core/app/copy.ts @@ -5,10 +5,10 @@ import { authApp } from '@fastgpt/service/support/permission/app/auth'; import { authUserPer } from '@fastgpt/service/support/permission/user/auth'; import type { ApiRequestProps, ApiResponseType } from '@fastgpt/service/type/next'; import { onCreateApp } from './create'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { AppTypeEnum } from '@fastgpt/global/core/app/constants'; -import { getI18nAppType } from '@fastgpt/service/support/operationLog/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { getI18nAppType } from '@fastgpt/service/support/user/audit/util'; + export type copyAppQuery = {}; export type copyAppBody = { appId: string }; @@ -46,10 +46,10 @@ async function handler( pluginData: app.pluginData }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CREATE_APP_COPY, + event: AuditEventEnum.CREATE_APP_COPY, params: { appName: app.name, appType: getI18nAppType(app.type) diff --git a/projects/app/src/pages/api/core/app/create.ts b/projects/app/src/pages/api/core/app/create.ts index c8496d1bc..bcfdb9f58 100644 --- a/projects/app/src/pages/api/core/app/create.ts +++ b/projects/app/src/pages/api/core/app/create.ts @@ -19,9 +19,9 @@ import { checkTeamAppLimit } from '@fastgpt/service/support/permission/teamLimit import { authUserPer } from '@fastgpt/service/support/permission/user/auth'; import { MongoTeamMember } from '@fastgpt/service/support/user/team/teamMemberSchema'; import { type ApiRequestProps } from '@fastgpt/service/type/next'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nAppType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nAppType } from '@fastgpt/service/support/user/audit/util'; export type CreateAppBody = { parentId?: ParentIdType; @@ -152,10 +152,10 @@ export const onCreateApp = async ({ ); } (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CREATE_APP, + event: AuditEventEnum.CREATE_APP, params: { appName: name!, appType: getI18nAppType(type!) diff --git a/projects/app/src/pages/api/core/app/del.ts b/projects/app/src/pages/api/core/app/del.ts index 0447c172b..eb2593e27 100644 --- a/projects/app/src/pages/api/core/app/del.ts +++ b/projects/app/src/pages/api/core/app/del.ts @@ -19,9 +19,9 @@ import { deleteChatFiles } from '@fastgpt/service/core/chat/controller'; import { pushTrack } from '@fastgpt/service/common/middle/tracks/utils'; import { MongoOpenApi } from '@fastgpt/service/support/openapi/schema'; import { removeImageByPath } from '@fastgpt/service/common/file/image/controller'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nAppType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nAppType } from '@fastgpt/service/support/user/audit/util'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { appId } = req.query as { appId: string }; @@ -43,10 +43,10 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { appId }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.DELETE_APP, + event: AuditEventEnum.DELETE_APP, params: { appName: app.name, appType: getI18nAppType(app.type) diff --git a/projects/app/src/pages/api/core/app/folder/create.ts b/projects/app/src/pages/api/core/app/folder/create.ts index 4282cd321..88ff0d7e9 100644 --- a/projects/app/src/pages/api/core/app/folder/create.ts +++ b/projects/app/src/pages/api/core/app/folder/create.ts @@ -18,8 +18,8 @@ import { syncCollaborators } from '@fastgpt/service/support/permission/inheritPe import { MongoResourcePermission } from '@fastgpt/service/support/permission/schema'; import { authUserPer } from '@fastgpt/service/support/permission/user/auth'; import { type ApiRequestProps } from '@fastgpt/service/type/next'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; export type CreateAppFolderBody = { parentId?: ParentIdType; name: string; @@ -85,10 +85,10 @@ async function handler(req: ApiRequestProps) { } }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CREATE_APP_FOLDER, + event: AuditEventEnum.CREATE_APP_FOLDER, params: { folderName: name } diff --git a/projects/app/src/pages/api/core/app/getChatLogs.ts b/projects/app/src/pages/api/core/app/getChatLogs.ts index ea23282aa..702724283 100644 --- a/projects/app/src/pages/api/core/app/getChatLogs.ts +++ b/projects/app/src/pages/api/core/app/getChatLogs.ts @@ -13,9 +13,9 @@ import { parsePaginationRequest } from '@fastgpt/service/common/api/pagination'; import { type PaginationResponse } from '@fastgpt/web/common/fetch/type'; import { addSourceMember } from '@fastgpt/service/support/user/utils'; import { replaceRegChars } from '@fastgpt/global/common/string/tools'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nAppType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nAppType } from '@fastgpt/service/support/user/audit/util'; async function handler( req: NextApiRequest, @@ -148,10 +148,10 @@ async function handler( const listWithoutTmbId = list.filter((item) => !item.tmbId); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.EXPORT_APP_CHAT_LOG, + event: AuditEventEnum.EXPORT_APP_CHAT_LOG, params: { appName: app.name, appType: getI18nAppType(app.type) diff --git a/projects/app/src/pages/api/core/app/update.ts b/projects/app/src/pages/api/core/app/update.ts index 0cfb31804..a58f8f86f 100644 --- a/projects/app/src/pages/api/core/app/update.ts +++ b/projects/app/src/pages/api/core/app/update.ts @@ -24,9 +24,9 @@ import { TeamAppCreatePermissionVal } from '@fastgpt/global/support/permission/u import { AppErrEnum } from '@fastgpt/global/common/error/code/app'; import { refreshSourceAvatar } from '@fastgpt/service/common/file/image/controller'; import { MongoResourcePermission } from '@fastgpt/service/support/permission/schema'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nAppType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nAppType } from '@fastgpt/service/support/user/audit/util'; import { i18nT } from '@fastgpt/web/i18n/utils'; export type AppUpdateQuery = { @@ -204,10 +204,10 @@ const logAppMove = ({ app: any; targetName: string; }) => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.MOVE_APP, + event: AuditEventEnum.MOVE_APP, params: { appName: app.name, targetFolderName: targetName, @@ -251,10 +251,10 @@ const logAppUpdate = ({ const { names: newItemNames, values: newItemValues } = getUpdateItems(); - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.UPDATE_APP_INFO, + event: AuditEventEnum.UPDATE_APP_INFO, params: { appName: app.name, newItemNames: newItemNames, diff --git a/projects/app/src/pages/api/core/app/version/publish.ts b/projects/app/src/pages/api/core/app/version/publish.ts index 67430451e..56182c7ff 100644 --- a/projects/app/src/pages/api/core/app/version/publish.ts +++ b/projects/app/src/pages/api/core/app/version/publish.ts @@ -9,9 +9,9 @@ import { getNextTimeByCronStringAndTimezone } from '@fastgpt/global/common/strin import { type PostPublishAppProps } from '@/global/core/app/api'; import { WritePermissionVal } from '@fastgpt/global/support/permission/constant'; import { type ApiRequestProps } from '@fastgpt/service/type/next'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nAppType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nAppType } from '@fastgpt/service/support/user/audit/util'; import { i18nT } from '@fastgpt/web/i18n/utils'; async function handler(req: ApiRequestProps, res: NextApiResponse) { @@ -37,10 +37,10 @@ async function handler(req: ApiRequestProps, res: NextApiRe updateTime: new Date() }); - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.UPDATE_PUBLISH_APP, + event: AuditEventEnum.UPDATE_PUBLISH_APP, params: { appName: app.name, operationName: i18nT('account_team:update'), @@ -99,10 +99,10 @@ async function handler(req: ApiRequestProps, res: NextApiRe }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.UPDATE_PUBLISH_APP, + event: AuditEventEnum.UPDATE_PUBLISH_APP, params: { appName: app.name, operationName: isPublish diff --git a/projects/app/src/pages/api/core/dataset/collection/create.ts b/projects/app/src/pages/api/core/dataset/collection/create.ts index 219da11d6..b7fb41951 100644 --- a/projects/app/src/pages/api/core/dataset/collection/create.ts +++ b/projects/app/src/pages/api/core/dataset/collection/create.ts @@ -4,9 +4,9 @@ import { authDataset } from '@fastgpt/service/support/permission/dataset/auth'; import { createOneCollection } from '@fastgpt/service/core/dataset/collection/controller'; import { NextAPI } from '@/service/middleware/entry'; import { WritePermissionVal } from '@fastgpt/global/support/permission/constant'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; async function handler(req: NextApiRequest) { const body = req.body as CreateDatasetCollectionParams; @@ -26,10 +26,10 @@ async function handler(req: NextApiRequest) { }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CREATE_COLLECTION, + event: AuditEventEnum.CREATE_COLLECTION, params: { collectionName: body.name, datasetName: dataset.name, diff --git a/projects/app/src/pages/api/core/dataset/collection/create/reTrainingCollection.ts b/projects/app/src/pages/api/core/dataset/collection/create/reTrainingCollection.ts index 40f83d32f..0a7bb573c 100644 --- a/projects/app/src/pages/api/core/dataset/collection/create/reTrainingCollection.ts +++ b/projects/app/src/pages/api/core/dataset/collection/create/reTrainingCollection.ts @@ -7,9 +7,9 @@ import { delCollection } from '@fastgpt/service/core/dataset/collection/controll import { authDatasetCollection } from '@fastgpt/service/support/permission/dataset/auth'; import { CommonErrEnum } from '@fastgpt/global/common/error/code/common'; import { WritePermissionVal } from '@fastgpt/global/support/permission/constant'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; type RetrainingCollectionResponse = { collectionId: string; @@ -52,10 +52,10 @@ async function handler( }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.RETRAIN_COLLECTION, + event: AuditEventEnum.RETRAIN_COLLECTION, params: { collectionName: collection.name, datasetName: collection.dataset?.name || '', diff --git a/projects/app/src/pages/api/core/dataset/collection/delete.ts b/projects/app/src/pages/api/core/dataset/collection/delete.ts index 741f84c39..14187554b 100644 --- a/projects/app/src/pages/api/core/dataset/collection/delete.ts +++ b/projects/app/src/pages/api/core/dataset/collection/delete.ts @@ -6,9 +6,9 @@ import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; import { NextAPI } from '@/service/middleware/entry'; import { WritePermissionVal } from '@fastgpt/global/support/permission/constant'; import { CommonErrEnum } from '@fastgpt/global/common/error/code/common'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; async function handler(req: NextApiRequest) { const { id: collectionId } = req.query as { id: string }; @@ -44,10 +44,10 @@ async function handler(req: NextApiRequest) { ); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.DELETE_COLLECTION, + event: AuditEventEnum.DELETE_COLLECTION, params: { collectionName: collection.name, datasetName: collection.dataset?.name || '', diff --git a/projects/app/src/pages/api/core/dataset/collection/update.ts b/projects/app/src/pages/api/core/dataset/collection/update.ts index e298bc963..89e18dc11 100644 --- a/projects/app/src/pages/api/core/dataset/collection/update.ts +++ b/projects/app/src/pages/api/core/dataset/collection/update.ts @@ -12,9 +12,9 @@ import { DatasetCollectionTypeEnum } from '@fastgpt/global/core/dataset/constant import { type ClientSession } from '@fastgpt/service/common/mongo'; import { type CollectionWithDatasetType } from '@fastgpt/global/core/dataset/type'; import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; export type UpdateDatasetCollectionParams = { id?: string; parentId?: string; @@ -135,10 +135,10 @@ async function handler(req: ApiRequestProps) { }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.UPDATE_COLLECTION, + event: AuditEventEnum.UPDATE_COLLECTION, params: { collectionName: collection.name, datasetName: collection.dataset?.name || '', diff --git a/projects/app/src/pages/api/core/dataset/create.ts b/projects/app/src/pages/api/core/dataset/create.ts index 265da47dd..71ec9b53a 100644 --- a/projects/app/src/pages/api/core/dataset/create.ts +++ b/projects/app/src/pages/api/core/dataset/create.ts @@ -18,9 +18,9 @@ import { authDataset } from '@fastgpt/service/support/permission/dataset/auth'; import { checkTeamDatasetLimit } from '@fastgpt/service/support/permission/teamLimit'; import { authUserPer } from '@fastgpt/service/support/permission/user/auth'; import type { ApiRequestProps } from '@fastgpt/service/type/next'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; export type DatasetCreateQuery = {}; export type DatasetCreateBody = CreateDatasetParams; @@ -102,10 +102,10 @@ async function handler( }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CREATE_DATASET, + event: AuditEventEnum.CREATE_DATASET, params: { datasetName: name, datasetType: getI18nDatasetType(type) diff --git a/projects/app/src/pages/api/core/dataset/data/delete.ts b/projects/app/src/pages/api/core/dataset/data/delete.ts index 248578da6..cd9b5ee47 100644 --- a/projects/app/src/pages/api/core/dataset/data/delete.ts +++ b/projects/app/src/pages/api/core/dataset/data/delete.ts @@ -4,9 +4,9 @@ import { deleteDatasetData } from '@/service/core/dataset/data/controller'; import { NextAPI } from '@/service/middleware/entry'; import { WritePermissionVal } from '@fastgpt/global/support/permission/constant'; import { CommonErrEnum } from '@fastgpt/global/common/error/code/common'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; async function handler(req: NextApiRequest) { const { id: dataId } = req.query as { id: string; @@ -27,10 +27,10 @@ async function handler(req: NextApiRequest) { await deleteDatasetData(datasetData); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.DELETE_DATA, + event: AuditEventEnum.DELETE_DATA, params: { collectionName: collection.name, datasetName: collection.dataset?.name || '', diff --git a/projects/app/src/pages/api/core/dataset/data/insertData.ts b/projects/app/src/pages/api/core/dataset/data/insertData.ts index 478b13abf..3c8d944ab 100644 --- a/projects/app/src/pages/api/core/dataset/data/insertData.ts +++ b/projects/app/src/pages/api/core/dataset/data/insertData.ts @@ -17,9 +17,9 @@ import { NextAPI } from '@/service/middleware/entry'; import { WritePermissionVal } from '@fastgpt/global/support/permission/constant'; import { CommonErrEnum } from '@fastgpt/global/common/error/code/common'; import { getLLMMaxChunkSize } from '@fastgpt/global/core/dataset/training/utils'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; async function handler(req: NextApiRequest) { const { collectionId, q, a, indexes } = req.body as InsertOneDatasetDataProps; @@ -99,10 +99,10 @@ async function handler(req: NextApiRequest) { }); (() => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CREATE_DATA, + event: AuditEventEnum.CREATE_DATA, params: { collectionName: collection.name, datasetName: collection.dataset?.name || '', diff --git a/projects/app/src/pages/api/core/dataset/data/update.ts b/projects/app/src/pages/api/core/dataset/data/update.ts index b8bff3032..f44bd9cd5 100644 --- a/projects/app/src/pages/api/core/dataset/data/update.ts +++ b/projects/app/src/pages/api/core/dataset/data/update.ts @@ -5,9 +5,9 @@ import { NextAPI } from '@/service/middleware/entry'; import { WritePermissionVal } from '@fastgpt/global/support/permission/constant'; import { authDatasetData } from '@fastgpt/service/support/permission/dataset/auth'; import { type ApiRequestProps } from '@fastgpt/service/type/next'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; async function handler(req: ApiRequestProps) { const { dataId, q, a, indexes = [] } = req.body; @@ -48,10 +48,10 @@ async function handler(req: ApiRequestProps) { }); (() => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.UPDATE_DATA, + event: AuditEventEnum.UPDATE_DATA, params: { collectionName: collection.name, datasetName: collection.dataset?.name || '', diff --git a/projects/app/src/pages/api/core/dataset/delete.ts b/projects/app/src/pages/api/core/dataset/delete.ts index cb77d6cf7..595487c58 100644 --- a/projects/app/src/pages/api/core/dataset/delete.ts +++ b/projects/app/src/pages/api/core/dataset/delete.ts @@ -11,9 +11,9 @@ import { MongoDatasetCollectionTags } from '@fastgpt/service/core/dataset/tag/sc import { removeImageByPath } from '@fastgpt/service/common/file/image/controller'; import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants'; import { removeWebsiteSyncJobScheduler } from '@fastgpt/service/core/dataset/websiteSync'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; async function handler(req: NextApiRequest) { const { id: datasetId } = req.query as { @@ -72,10 +72,10 @@ async function handler(req: NextApiRequest) { }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.DELETE_DATASET, + event: AuditEventEnum.DELETE_DATASET, params: { datasetName: dataset.name, datasetType: getI18nDatasetType(dataset.type) diff --git a/projects/app/src/pages/api/core/dataset/folder/create.ts b/projects/app/src/pages/api/core/dataset/folder/create.ts index 0d9392bd8..3bb34ad22 100644 --- a/projects/app/src/pages/api/core/dataset/folder/create.ts +++ b/projects/app/src/pages/api/core/dataset/folder/create.ts @@ -17,8 +17,8 @@ import { syncCollaborators } from '@fastgpt/service/support/permission/inheritPe import { MongoResourcePermission } from '@fastgpt/service/support/permission/schema'; import { authUserPer } from '@fastgpt/service/support/permission/user/auth'; import type { ApiRequestProps, ApiResponseType } from '@fastgpt/service/type/next'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; export type DatasetFolderCreateQuery = {}; export type DatasetFolderCreateBody = { parentId?: string; @@ -95,10 +95,10 @@ async function handler( } }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CREATE_DATASET_FOLDER, + event: AuditEventEnum.CREATE_DATASET_FOLDER, params: { folderName: name } diff --git a/projects/app/src/pages/api/core/dataset/searchTest.ts b/projects/app/src/pages/api/core/dataset/searchTest.ts index 67dcf21f3..ae7197c58 100644 --- a/projects/app/src/pages/api/core/dataset/searchTest.ts +++ b/projects/app/src/pages/api/core/dataset/searchTest.ts @@ -14,9 +14,9 @@ import { CommonErrEnum } from '@fastgpt/global/common/error/code/common'; import { useIPFrequencyLimit } from '@fastgpt/service/common/middle/reqFrequencyLimit'; import { type ApiRequestProps } from '@fastgpt/service/type/next'; import { getRerankModel } from '@fastgpt/service/core/ai/model'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; async function handler(req: ApiRequestProps): Promise { const { datasetId, @@ -133,10 +133,10 @@ async function handler(req: ApiRequestProps): Promise { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.SEARCH_TEST, + event: AuditEventEnum.SEARCH_TEST, params: { datasetName: dataset.name, datasetType: getI18nDatasetType(dataset.type) diff --git a/projects/app/src/pages/api/core/dataset/update.ts b/projects/app/src/pages/api/core/dataset/update.ts index 02b3aaa7d..0e8067e9a 100644 --- a/projects/app/src/pages/api/core/dataset/update.ts +++ b/projects/app/src/pages/api/core/dataset/update.ts @@ -37,9 +37,9 @@ import { } from '@fastgpt/service/core/dataset/websiteSync'; import { delDatasetRelevantData } from '@fastgpt/service/core/dataset/controller'; import { isEqual } from 'lodash'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; import { getEmbeddingModel, getLLMModel } from '@fastgpt/service/core/ai/model'; import { computedCollectionChunkSettings } from '@fastgpt/global/core/dataset/training/utils'; @@ -368,10 +368,10 @@ const logDatasetMove = ({ targetName: string; }) => { (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.MOVE_DATASET, + event: AuditEventEnum.MOVE_DATASET, params: { datasetName: dataset.name, targetFolderName: targetName, @@ -391,10 +391,10 @@ const logDatasetUpdate = ({ dataset: any; }) => { (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.UPDATE_DATASET, + event: AuditEventEnum.UPDATE_DATASET, params: { datasetName: dataset.name, datasetType: getI18nDatasetType(dataset.type) diff --git a/projects/app/src/pages/api/support/openapi/create.ts b/projects/app/src/pages/api/support/openapi/create.ts index 280385f21..203e5849c 100644 --- a/projects/app/src/pages/api/support/openapi/create.ts +++ b/projects/app/src/pages/api/support/openapi/create.ts @@ -8,8 +8,8 @@ import { ManagePermissionVal } from '@fastgpt/global/support/permission/constant import { authApp } from '@fastgpt/service/support/permission/app/auth'; import { OpenApiErrEnum } from '@fastgpt/global/common/error/code/openapi'; import { TeamApikeyCreatePermissionVal } from '@fastgpt/global/support/permission/user/constant'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; async function handler(req: ApiRequestProps): Promise { const { appId, name, limit } = req.body; const { tmbId, teamId } = await (async () => { @@ -51,10 +51,10 @@ async function handler(req: ApiRequestProps): Promise { }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CREATE_API_KEY, + event: AuditEventEnum.CREATE_API_KEY, params: { keyName: name } diff --git a/projects/app/src/pages/api/support/openapi/delete.ts b/projects/app/src/pages/api/support/openapi/delete.ts index b8257f36b..9bdb1e7cf 100644 --- a/projects/app/src/pages/api/support/openapi/delete.ts +++ b/projects/app/src/pages/api/support/openapi/delete.ts @@ -4,8 +4,8 @@ import { OwnerPermissionVal } from '@fastgpt/global/support/permission/constant' import { CommonErrEnum } from '@fastgpt/global/common/error/code/common'; import type { ApiRequestProps, ApiResponseType } from '@fastgpt/service/type/next'; import { NextAPI } from '@/service/middleware/entry'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; export type OpenAPIDeleteQuery = { id: string }; export type OpenAPIDeleteBody = {}; export type OpenAPIDeleteResponse = {}; @@ -28,10 +28,10 @@ async function handler( }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.DELETE_API_KEY, + event: AuditEventEnum.DELETE_API_KEY, params: { keyName: openapi.name } diff --git a/projects/app/src/pages/api/support/openapi/update.ts b/projects/app/src/pages/api/support/openapi/update.ts index 6de587f57..de7b6857f 100644 --- a/projects/app/src/pages/api/support/openapi/update.ts +++ b/projects/app/src/pages/api/support/openapi/update.ts @@ -4,8 +4,8 @@ import { authOpenApiKeyCrud } from '@fastgpt/service/support/permission/auth/ope import { OwnerPermissionVal } from '@fastgpt/global/support/permission/constant'; import type { ApiRequestProps } from '@fastgpt/service/type/next'; import { NextAPI } from '@/service/middleware/entry'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; async function handler(req: ApiRequestProps): Promise { const { _id, name, limit } = req.body; @@ -17,10 +17,10 @@ async function handler(req: ApiRequestProps): }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.UPDATE_API_KEY, + event: AuditEventEnum.UPDATE_API_KEY, params: { keyName: name } diff --git a/projects/app/src/pages/api/support/outLink/create.ts b/projects/app/src/pages/api/support/outLink/create.ts index 3858e7ed8..992b19e2f 100644 --- a/projects/app/src/pages/api/support/outLink/create.ts +++ b/projects/app/src/pages/api/support/outLink/create.ts @@ -5,9 +5,9 @@ import type { PublishChannelEnum } from '@fastgpt/global/support/outLink/constan import { ManagePermissionVal } from '@fastgpt/global/support/permission/constant'; import type { ApiRequestProps } from '@fastgpt/service/type/next'; import { NextAPI } from '@/service/middleware/entry'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nAppType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nAppType } from '@fastgpt/service/support/user/audit/util'; import { getNanoid } from '@fastgpt/global/common/string/tools'; export type OutLinkCreateQuery = {}; @@ -40,10 +40,10 @@ async function handler( }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CREATE_APP_PUBLISH_CHANNEL, + event: AuditEventEnum.CREATE_APP_PUBLISH_CHANNEL, params: { appName: app.name, channelName: props.name, diff --git a/projects/app/src/pages/api/support/outLink/delete.ts b/projects/app/src/pages/api/support/outLink/delete.ts index a74c4d184..e1c617d58 100644 --- a/projects/app/src/pages/api/support/outLink/delete.ts +++ b/projects/app/src/pages/api/support/outLink/delete.ts @@ -3,9 +3,9 @@ import { authOutLinkCrud } from '@fastgpt/service/support/permission/publish/aut import { OwnerPermissionVal } from '@fastgpt/global/support/permission/constant'; import type { ApiRequestProps } from '@fastgpt/service/type/next'; import { NextAPI } from '@/service/middleware/entry'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nAppType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nAppType } from '@fastgpt/service/support/user/audit/util'; export type OutLinkDeleteQuery = { id: string; @@ -28,10 +28,10 @@ async function handler( await MongoOutLink.findByIdAndDelete(id); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.DELETE_APP_PUBLISH_CHANNEL, + event: AuditEventEnum.DELETE_APP_PUBLISH_CHANNEL, params: { appName: app.name, channelName: outLink.name, diff --git a/projects/app/src/pages/api/support/outLink/update.ts b/projects/app/src/pages/api/support/outLink/update.ts index d926eeb2b..853b92be8 100644 --- a/projects/app/src/pages/api/support/outLink/update.ts +++ b/projects/app/src/pages/api/support/outLink/update.ts @@ -5,9 +5,9 @@ import { ManagePermissionVal } from '@fastgpt/global/support/permission/constant import type { ApiRequestProps } from '@fastgpt/service/type/next'; import { NextAPI } from '@/service/middleware/entry'; import { CommonErrEnum } from '@fastgpt/global/common/error/code/common'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nAppType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nAppType } from '@fastgpt/service/support/user/audit/util'; export type OutLinkUpdateQuery = {}; // { @@ -55,10 +55,10 @@ async function handler( }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.UPDATE_APP_PUBLISH_CHANNEL, + event: AuditEventEnum.UPDATE_APP_PUBLISH_CHANNEL, params: { appName: logApp.name, channelName: outLink.name, diff --git a/projects/app/src/pages/api/support/user/account/loginByPassword.ts b/projects/app/src/pages/api/support/user/account/loginByPassword.ts index 62e927a5a..deaa82583 100644 --- a/projects/app/src/pages/api/support/user/account/loginByPassword.ts +++ b/projects/app/src/pages/api/support/user/account/loginByPassword.ts @@ -9,8 +9,8 @@ import { useIPFrequencyLimit } from '@fastgpt/service/common/middle/reqFrequency import { pushTrack } from '@fastgpt/service/common/middle/tracks/utils'; import { CommonErrEnum } from '@fastgpt/global/common/error/code/common'; import { UserErrEnum } from '@fastgpt/global/common/error/code/user'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; import { UserAuthTypeEnum } from '@fastgpt/global/support/user/auth/constants'; import { authCode } from '@fastgpt/service/support/user/auth/controller'; import { createUserSession } from '@fastgpt/service/support/user/session'; @@ -79,10 +79,10 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { teamId: userDetail.team.teamId, tmbId: userDetail.team.tmbId }); - addOperationLog({ + addAuditLog({ tmbId: userDetail.team.tmbId, teamId: userDetail.team.teamId, - event: OperationLogEventEnum.LOGIN + event: AuditEventEnum.LOGIN }); return { diff --git a/projects/app/src/pages/api/support/user/account/updatePasswordByOld.ts b/projects/app/src/pages/api/support/user/account/updatePasswordByOld.ts index 6e5f49a3e..a881872fb 100644 --- a/projects/app/src/pages/api/support/user/account/updatePasswordByOld.ts +++ b/projects/app/src/pages/api/support/user/account/updatePasswordByOld.ts @@ -5,8 +5,8 @@ import { MongoUser } from '@fastgpt/service/support/user/schema'; import { MongoTeamMember } from '@fastgpt/service/support/user/team/teamMemberSchema'; import { i18nT } from '@fastgpt/web/i18n/utils'; import { NextAPI } from '@/service/middleware/entry'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; async function handler(req: NextApiRequest, res: NextApiResponse) { const { oldPsw, newPsw } = req.body as { oldPsw: string; newPsw: string }; @@ -41,10 +41,10 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.CHANGE_PASSWORD, + event: AuditEventEnum.CHANGE_PASSWORD, params: {} }); })(); diff --git a/projects/app/src/pages/api/support/user/team/limit/exportDatasetLimit.ts b/projects/app/src/pages/api/support/user/team/limit/exportDatasetLimit.ts index d177a8256..f53428dcc 100644 --- a/projects/app/src/pages/api/support/user/team/limit/exportDatasetLimit.ts +++ b/projects/app/src/pages/api/support/user/team/limit/exportDatasetLimit.ts @@ -3,9 +3,9 @@ import { authDataset } from '@fastgpt/service/support/permission/dataset/auth'; import { checkExportDatasetLimit } from '@fastgpt/service/support/user/utils'; import { NextAPI } from '@/service/middleware/entry'; import { WritePermissionVal } from '@fastgpt/global/support/permission/constant'; -import { addOperationLog } from '@fastgpt/service/support/operationLog/addOperationLog'; -import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; -import { getI18nDatasetType } from '@fastgpt/service/support/operationLog/util'; +import { addAuditLog } from '@fastgpt/service/support/user/audit/util'; +import { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; +import { getI18nDatasetType } from '@fastgpt/service/support/user/audit/util'; async function handler(req: NextApiRequest) { const { datasetId } = req.query as { @@ -30,10 +30,10 @@ async function handler(req: NextApiRequest) { }); (async () => { - addOperationLog({ + addAuditLog({ tmbId, teamId, - event: OperationLogEventEnum.EXPORT_DATASET, + event: AuditEventEnum.EXPORT_DATASET, params: { datasetName: dataset.name, datasetType: getI18nDatasetType(dataset.type) diff --git a/projects/app/src/web/support/user/team/operantionLog/api.ts b/projects/app/src/web/support/user/team/operantionLog/api.ts index 20e98ef33..af359543a 100644 --- a/projects/app/src/web/support/user/team/operantionLog/api.ts +++ b/projects/app/src/web/support/user/team/operantionLog/api.ts @@ -1,15 +1,11 @@ import { GET, POST, PUT } from '@/web/common/api/request'; import type { PaginationProps, PaginationResponse } from '@fastgpt/web/common/fetch/type'; -import type { OperationListItemType } from '@fastgpt/global/support/operationLog/type'; -import type { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants'; +import type { OperationListItemType } from '@fastgpt/global/support/user/audit/type'; +import type { AuditEventEnum } from '@fastgpt/global/support/user/audit/constants'; export const getOperationLogs = ( props: PaginationProps & { tmbIds?: string[]; - events?: OperationLogEventEnum[]; + events?: AuditEventEnum[]; } -) => - POST>( - `/proApi/support/user/team/operationLog/list`, - props - ); +) => POST>(`/proApi/support/user/audit/list`, props); diff --git a/test/mocks/index.ts b/test/mocks/index.ts index 520f4f0f3..96c06b336 100644 --- a/test/mocks/index.ts +++ b/test/mocks/index.ts @@ -1,8 +1,10 @@ import { vi } from 'vitest'; import './request'; -vi.mock(import('@fastgpt/service/support/operationLog/addOperationLog'), () => { +vi.mock(import('@fastgpt/service/support/audit/util'), async (importOriginal) => { + const actual = await importOriginal(); return { - addOperationLog: vi.fn() + ...actual, + addAuditLog: vi.fn() }; });