mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-18 10:03:55 +00:00
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>
This commit is contained in:
2
dev.md
2
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
|
||||
|
||||
|
@@ -11,6 +11,7 @@ weight: 787
|
||||
## 🚀 新增内容
|
||||
|
||||
1. 知识库导入,支持配置:自动将文件名加入系统索引中。
|
||||
2. Admin 端审计日志。
|
||||
|
||||
## ⚙️ 优化
|
||||
|
||||
|
@@ -78,7 +78,7 @@ export type YuqueServer = {
|
||||
|
||||

|
||||
|
||||
`FastGPT\packages\service\support\operationLog\util.ts`文件下添加如下内容,以支持获取 I18n 翻译。
|
||||
`FastGPT\packages\service\support\user/audit\util.ts`文件下添加如下内容,以支持获取 I18n 翻译。
|
||||
|
||||

|
||||
|
||||
|
@@ -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'];
|
||||
};
|
@@ -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<string, string>;
|
||||
};
|
||||
|
||||
export type OperationListItemType = {
|
||||
_id: string;
|
||||
sourceMember: SourceMemberType;
|
||||
event: `${OperationLogEventEnum}`;
|
||||
event: `${AuditEventEnum}`;
|
||||
timestamp: Date;
|
||||
metadata: Record<string, string>;
|
||||
};
|
@@ -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<T extends OperationLogEventEnum>({
|
||||
teamId,
|
||||
tmbId,
|
||||
event,
|
||||
params
|
||||
}: {
|
||||
tmbId: string;
|
||||
teamId: string;
|
||||
event: T;
|
||||
params?: TemplateParamsMap[T];
|
||||
}) {
|
||||
retryFn(() =>
|
||||
MongoOperationLog.create({
|
||||
tmbId: tmbId,
|
||||
teamId: teamId,
|
||||
event,
|
||||
metadata: params
|
||||
})
|
||||
);
|
||||
}
|
@@ -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: {
|
@@ -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<T extends AuditEventEnum>({
|
||||
teamId,
|
||||
tmbId,
|
||||
event,
|
||||
params
|
||||
}: {
|
||||
tmbId: string;
|
||||
teamId: string;
|
||||
event: T;
|
||||
params?: AuditEventParamsType[T];
|
||||
}): void;
|
||||
|
||||
export function addAuditLog<T extends AdminAuditEventEnum>({
|
||||
teamId,
|
||||
tmbId,
|
||||
event,
|
||||
params
|
||||
}: {
|
||||
tmbId: string;
|
||||
teamId: string;
|
||||
event: T;
|
||||
params?: AdminAuditEventParamsType[T];
|
||||
}): void;
|
||||
export function addAuditLog<T extends AuditEventEnum | AdminAuditEventEnum>({
|
||||
teamId,
|
||||
tmbId,
|
||||
event,
|
||||
params
|
||||
}: {
|
||||
tmbId: string;
|
||||
teamId: string;
|
||||
event: T;
|
||||
params?: any;
|
||||
}) {
|
||||
retryFn(() =>
|
||||
MongoOperationLog.create({
|
||||
tmbId: tmbId,
|
||||
teamId: teamId,
|
||||
event,
|
||||
metadata: params
|
||||
})
|
||||
);
|
||||
}
|
@@ -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'),
|
||||
|
@@ -0,0 +1 @@
|
||||
<svg t="1750218314310" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4361" ><path d="M746.88 938.88v42.24a42.88 42.88 0 0 0 42.24-42.24zM149.12 149.12A21.76 21.76 0 0 1 170.88 128V42.88A106.24 106.24 0 0 0 64 149.12zM170.88 128h512V42.88h-512V128z m512 0a21.12 21.12 0 0 1 21.12 21.12h85.12A106.24 106.24 0 0 0 682.88 42.88V128z m21.12 21.12v789.76h85.12V149.12zM746.88 896h-576v85.12h576V896z m-576 0a21.76 21.76 0 0 1-21.76-21.12H64a106.24 106.24 0 0 0 106.88 106.24V896z m-21.76-21.12V149.12H64v725.76z" p-id="4362"></path><path d="M746.88 938.88H704a42.88 42.88 0 0 0 42.88 42.24v-42.24zM789.12 512V426.88A85.12 85.12 0 0 0 704 512z m0 0h85.76V426.88h-85.76V512z m85.76 0H960a85.12 85.12 0 0 0-85.12-85.12V512z m0 0v362.88H960V512z m0 362.88a21.76 21.76 0 0 1-21.76 21.12v85.12A106.24 106.24 0 0 0 960 874.88z m-21.76 21.12h-106.24v85.12h106.24V896z m-64 42.88V512H704v426.88zM234.88 213.12a42.88 42.88 0 0 0 0 85.76V213.12z m170.24 85.76a42.88 42.88 0 0 0 0-85.76v85.76z m-170.24 0h170.24V213.12H234.88v85.76zM234.88 362.88a42.24 42.24 0 0 0-42.88 42.24 42.88 42.88 0 0 0 42.88 42.88V362.88z m256 85.12a42.88 42.88 0 0 0 42.24-42.88 42.24 42.24 0 0 0-42.24-42.24V448z m-256 0h256V362.88h-256V448z" p-id="4363"></path></svg>
|
After Width: | Height: | Size: 1.2 KiB |
@@ -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}}】",
|
||||
|
@@ -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}}】",
|
||||
|
@@ -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}}】",
|
||||
|
@@ -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'];
|
||||
};
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "app",
|
||||
"version": "4.9.12",
|
||||
"version": "4.9.14",
|
||||
"private": false,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
|
@@ -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';
|
||||
|
@@ -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<OperationLogEventEnum>(
|
||||
} = useMultipleSelect<AuditEventEnum>(
|
||||
eventOptions.map((item) => item.value),
|
||||
true
|
||||
);
|
||||
@@ -166,8 +166,8 @@ function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) {
|
||||
</Tr>
|
||||
</Thead>
|
||||
<Tbody>
|
||||
{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;
|
@@ -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<Record<OperationLogEventEnum, MetadataProcessor>> = {
|
||||
export const specialProcessors: Partial<Record<AuditEventEnum, MetadataProcessor>> = {
|
||||
...createTeamProcessors,
|
||||
...createAppProcessors,
|
||||
...createDatasetProcessors
|
@@ -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 && <OrgManage Tabs={Tabs} />}
|
||||
{teamTab === TeamTabEnum.group && <GroupManage Tabs={Tabs} />}
|
||||
{teamTab === TeamTabEnum.permission && <PermissionManage Tabs={Tabs} />}
|
||||
{teamTab === TeamTabEnum.audit && <OperationLogTable Tabs={Tabs} />}
|
||||
{teamTab === TeamTabEnum.audit && <AuditLog Tabs={Tabs} />}
|
||||
</Box>
|
||||
</Flex>
|
||||
{invitelinkid && <HandleInviteModal invitelinkid={invitelinkid} />}
|
||||
|
@@ -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)
|
||||
|
@@ -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!)
|
||||
|
@@ -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<any>) {
|
||||
const { appId } = req.query as { appId: string };
|
||||
@@ -43,10 +43,10 @@ async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
|
||||
appId
|
||||
});
|
||||
(async () => {
|
||||
addOperationLog({
|
||||
addAuditLog({
|
||||
tmbId,
|
||||
teamId,
|
||||
event: OperationLogEventEnum.DELETE_APP,
|
||||
event: AuditEventEnum.DELETE_APP,
|
||||
params: {
|
||||
appName: app.name,
|
||||
appType: getI18nAppType(app.type)
|
||||
|
@@ -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<CreateAppFolderBody>) {
|
||||
}
|
||||
});
|
||||
(async () => {
|
||||
addOperationLog({
|
||||
addAuditLog({
|
||||
tmbId,
|
||||
teamId,
|
||||
event: OperationLogEventEnum.CREATE_APP_FOLDER,
|
||||
event: AuditEventEnum.CREATE_APP_FOLDER,
|
||||
params: {
|
||||
folderName: name
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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,
|
||||
|
@@ -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<PostPublishAppProps>, res: NextApiResponse<any>) {
|
||||
@@ -37,10 +37,10 @@ async function handler(req: ApiRequestProps<PostPublishAppProps>, 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<PostPublishAppProps>, res: NextApiRe
|
||||
});
|
||||
|
||||
(async () => {
|
||||
addOperationLog({
|
||||
addAuditLog({
|
||||
tmbId,
|
||||
teamId,
|
||||
event: OperationLogEventEnum.UPDATE_PUBLISH_APP,
|
||||
event: AuditEventEnum.UPDATE_PUBLISH_APP,
|
||||
params: {
|
||||
appName: app.name,
|
||||
operationName: isPublish
|
||||
|
@@ -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,
|
||||
|
@@ -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 || '',
|
||||
|
@@ -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 || '',
|
||||
|
@@ -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<UpdateDatasetCollectionParams>) {
|
||||
});
|
||||
|
||||
(async () => {
|
||||
addOperationLog({
|
||||
addAuditLog({
|
||||
tmbId,
|
||||
teamId,
|
||||
event: OperationLogEventEnum.UPDATE_COLLECTION,
|
||||
event: AuditEventEnum.UPDATE_COLLECTION,
|
||||
params: {
|
||||
collectionName: collection.name,
|
||||
datasetName: collection.dataset?.name || '',
|
||||
|
@@ -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)
|
||||
|
@@ -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 || '',
|
||||
|
@@ -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 || '',
|
||||
|
@@ -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<UpdateDatasetDataProps>) {
|
||||
const { dataId, q, a, indexes = [] } = req.body;
|
||||
@@ -48,10 +48,10 @@ async function handler(req: ApiRequestProps<UpdateDatasetDataProps>) {
|
||||
});
|
||||
|
||||
(() => {
|
||||
addOperationLog({
|
||||
addAuditLog({
|
||||
tmbId,
|
||||
teamId,
|
||||
event: OperationLogEventEnum.UPDATE_DATA,
|
||||
event: AuditEventEnum.UPDATE_DATA,
|
||||
params: {
|
||||
collectionName: collection.name,
|
||||
datasetName: collection.dataset?.name || '',
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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<SearchTestProps>): Promise<SearchTestResponse> {
|
||||
const {
|
||||
datasetId,
|
||||
@@ -133,10 +133,10 @@ async function handler(req: ApiRequestProps<SearchTestProps>): Promise<SearchTes
|
||||
});
|
||||
}
|
||||
(async () => {
|
||||
addOperationLog({
|
||||
addAuditLog({
|
||||
tmbId,
|
||||
teamId,
|
||||
event: OperationLogEventEnum.SEARCH_TEST,
|
||||
event: AuditEventEnum.SEARCH_TEST,
|
||||
params: {
|
||||
datasetName: dataset.name,
|
||||
datasetType: getI18nDatasetType(dataset.type)
|
||||
|
@@ -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)
|
||||
|
@@ -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<EditApiKeyProps>): Promise<string> {
|
||||
const { appId, name, limit } = req.body;
|
||||
const { tmbId, teamId } = await (async () => {
|
||||
@@ -51,10 +51,10 @@ async function handler(req: ApiRequestProps<EditApiKeyProps>): Promise<string> {
|
||||
});
|
||||
|
||||
(async () => {
|
||||
addOperationLog({
|
||||
addAuditLog({
|
||||
tmbId,
|
||||
teamId,
|
||||
event: OperationLogEventEnum.CREATE_API_KEY,
|
||||
event: AuditEventEnum.CREATE_API_KEY,
|
||||
params: {
|
||||
keyName: name
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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<EditApiKeyProps & { _id: string }>): Promise<void> {
|
||||
const { _id, name, limit } = req.body;
|
||||
|
||||
@@ -17,10 +17,10 @@ async function handler(req: ApiRequestProps<EditApiKeyProps & { _id: string }>):
|
||||
});
|
||||
|
||||
(async () => {
|
||||
addOperationLog({
|
||||
addAuditLog({
|
||||
tmbId,
|
||||
teamId,
|
||||
event: OperationLogEventEnum.UPDATE_API_KEY,
|
||||
event: AuditEventEnum.UPDATE_API_KEY,
|
||||
params: {
|
||||
keyName: name
|
||||
}
|
||||
|
@@ -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,
|
||||
|
@@ -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,
|
||||
|
@@ -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,
|
||||
|
@@ -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 {
|
||||
|
@@ -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<any>) {
|
||||
const { oldPsw, newPsw } = req.body as { oldPsw: string; newPsw: string };
|
||||
|
||||
@@ -41,10 +41,10 @@ async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
|
||||
});
|
||||
|
||||
(async () => {
|
||||
addOperationLog({
|
||||
addAuditLog({
|
||||
tmbId,
|
||||
teamId,
|
||||
event: OperationLogEventEnum.CHANGE_PASSWORD,
|
||||
event: AuditEventEnum.CHANGE_PASSWORD,
|
||||
params: {}
|
||||
});
|
||||
})();
|
||||
|
@@ -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)
|
||||
|
@@ -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<PaginationResponse<OperationListItemType>>(
|
||||
`/proApi/support/user/team/operationLog/list`,
|
||||
props
|
||||
);
|
||||
) => POST<PaginationResponse<OperationListItemType>>(`/proApi/support/user/audit/list`, props);
|
||||
|
@@ -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()
|
||||
};
|
||||
});
|
||||
|
Reference in New Issue
Block a user