diff --git a/packages/base/src/hooks/useSqlReviewTemplateToggle/index.test.tsx b/packages/base/src/hooks/useSqlReviewTemplateToggle/index.test.tsx deleted file mode 100644 index 5e5da7424..000000000 --- a/packages/base/src/hooks/useSqlReviewTemplateToggle/index.test.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { act, renderHook } from '@testing-library/react-hooks'; -import useSqlReviewTemplateToggle from '.'; -import { Form } from 'antd'; - -jest.mock('antd', () => { - const actualAntd = jest.requireActual('antd'); - return { - ...actualAntd, - Form: { - ...actualAntd.Form, - useForm: jest.fn(), - useWatch: jest.fn() - } - }; -}); - -describe('test base/hooks/useSqlReviewTemplateToggle', () => { - const mockSetFieldsForm = jest.fn(); - - const customRenderHook = () => { - const mockedForm = { - setFieldsValue: mockSetFieldsForm - }; - (Form.useForm as jest.Mock).mockReturnValue([mockedForm]); - (Form.useWatch as jest.Mock).mockReturnValue(false); - - return renderHook(() => useSqlReviewTemplateToggle(mockedForm as any)); - }; - - afterEach(() => { - jest.clearAllMocks(); - jest.clearAllTimers(); - }); - - it('match default value', async () => { - const { result } = customRenderHook(); - expect(result.current.auditRequired).toBeFalsy(); - expect(result.current.auditRequiredPopupVisible).toBeFalsy(); - }); - - it('execute changeAuditRequired', async () => { - const { result } = customRenderHook(); - - await act(() => { - result.current.changeAuditRequired(false); - }); - expect(mockSetFieldsForm).not.toHaveBeenCalled(); - - await act(() => { - result.current.changeAuditRequired(true); - }); - - expect(mockSetFieldsForm).toHaveBeenCalledTimes(1); - expect(mockSetFieldsForm).toHaveBeenCalledWith({ - needSqlAuditService: true - }); - }); - - it('execute clearRuleTemplate', async () => { - const { result } = customRenderHook(); - - await act(() => { - result.current.clearRuleTemplate(); - }); - expect(mockSetFieldsForm).toHaveBeenCalledTimes(1); - - expect(mockSetFieldsForm).toHaveBeenCalledWith({ - needSqlAuditService: false, - ruleTemplateId: undefined, - ruleTemplateName: undefined - }); - }); - - it('execute onAuditRequiredPopupOpenChange', async () => { - const { result, rerender } = customRenderHook(); - - await act(() => { - result.current.onAuditRequiredPopupOpenChange(true); - }); - expect(result.current.auditRequiredPopupVisible).toBeFalsy(); - - (Form.useWatch as jest.Mock).mockReturnValue(true); - - rerender(); - - await act(() => { - result.current.onAuditRequiredPopupOpenChange(true); - }); - expect(result.current.auditRequiredPopupVisible).toBeTruthy(); - }); -}); diff --git a/packages/base/src/hooks/useSqlReviewTemplateToggle/index.tsx b/packages/base/src/hooks/useSqlReviewTemplateToggle/index.tsx deleted file mode 100644 index d0245fc0b..000000000 --- a/packages/base/src/hooks/useSqlReviewTemplateToggle/index.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { Form, FormInstance } from 'antd'; -import { useState } from 'react'; - -const useSqlReviewTemplateToggle = < - T extends FormInstance<{ - needSqlAuditService?: boolean; - ruleTemplateId?: string; - ruleTemplateName?: string; - }> ->( - form: T -) => { - const auditRequired = Form.useWatch('needSqlAuditService', form); - const [auditRequiredPopupVisible, setAuditRequiredPopupVisible] = - useState(false); - - const onAuditRequiredPopupOpenChange = (open: boolean) => { - if (!auditRequired) { - return; - } - setAuditRequiredPopupVisible(open); - }; - const clearRuleTemplate = () => { - form.setFieldsValue({ - needSqlAuditService: false, - ruleTemplateId: undefined, - ruleTemplateName: undefined - }); - }; - - const changeAuditRequired = (check: boolean) => { - if (check) { - form.setFieldsValue({ - needSqlAuditService: check - }); - } - }; - - return { - auditRequired, - auditRequiredPopupVisible, - onAuditRequiredPopupOpenChange, - clearRuleTemplate, - changeAuditRequired - }; -}; - -export default useSqlReviewTemplateToggle; diff --git a/packages/base/src/locale/zh-CN/dmsDataSource.ts b/packages/base/src/locale/zh-CN/dmsDataSource.ts index d57451c16..da8133ce4 100644 --- a/packages/base/src/locale/zh-CN/dmsDataSource.ts +++ b/packages/base/src/locale/zh-CN/dmsDataSource.ts @@ -45,6 +45,8 @@ export default { dataSourceForm: { baseConfig: '基础配置', sqlConfig: 'SQL审核配置', + sqlConfigTips: + '管理不同业务场景下SQL执行所需遵循的审核规则,实现精细化管控', name: '数据源名称', describe: '数据源描述', type: '数据源类型', @@ -62,17 +64,26 @@ export default { deleteEnvironmentAttributeSuccess: '环境属性删除成功', addEnvironmentAttributeSuccess: '环境属性添加成功', deleteEnvironmentAttributeError: '当前环境已绑定:{{name}},暂无法删除', - ruleTemplate: '审核规则模板', + ruleTemplate: 'SQL上线审核规则模板', + ruleTemplateTips: '此功能强制开启审核,请为上线流程选择规则模板', workflow: '应用的工作流', maxPreQueryRows: 'SQL查询返回条数', queryTimeoutSecond: 'SQL超时限制(s)', maintenanceTime: '运维时间', maintenanceTimeTips: '设置运维时间后,仅能在此运维时间段内上线工单', needAuditSqlService: '是否开启SQL审核业务', + needAuditSqlServiceTips: '关闭后将禁用所用场景的SQL审核', closeAuditSqlServiceTips: '如果不启用SQL审核业务,则在SQL审核相关业务中无法使用该数据源,是否确认关闭?', - needAuditForSqlQuery: 'SQL工作台查询是否需要审核', + needAuditForSqlQuery: '工作台查询审核', + needAuditForSqlQueryTips: '用于SQL工作台实时查询,可按需启用', + workbenchAuditRuleTemplate: '工作台查询审核规则模板', allowQueryWhenLessThanAuditLevel: '自动放行的最高审核等级', + allowQueryWhenLessThanAuditLevelTips: + '低于或等于此等级的审核结果将自动放行', + dataExportAuditRuleTemplate: '数据导出审核规则模板', + dataExportAuditRuleTemplateTips: + '此功能强制开启审核,请为数据导出选择规则模板', passwordTips: '这里不会显示您已经配置的当前数据源密码,提交时如果您没有填写密码,那么将不会对数据源密码进行变更。', needUpdatePassword: '是否更新密码', diff --git a/packages/base/src/page/DataSource/components/AddDataSource/__snapshots__/index.test.tsx.snap b/packages/base/src/page/DataSource/components/AddDataSource/__snapshots__/index.test.tsx.snap index 22e815c13..55f8d070e 100644 --- a/packages/base/src/page/DataSource/components/AddDataSource/__snapshots__/index.test.tsx.snap +++ b/packages/base/src/page/DataSource/components/AddDataSource/__snapshots__/index.test.tsx.snap @@ -740,13 +740,31 @@ exports[`page/DataSource/AddDataSource render add database snap 1`] = `
-

- SQL审核配置 -

+
+

+ SQL审核配置 +

+
+
+ + 管理不同业务场景下SQL执行所需遵循的审核规则,实现精细化管控 + +
+
- 是否开启SQL审核业务 +
+
+ 是否开启SQL审核业务 +
+
+ 关闭后将禁用所用场景的SQL审核 +
+
- 审核规则模板 +
+
+ SQL上线审核规则模板 +
+
+ 此功能强制开启审核,请为上线流程选择规则模板 +
+
- 请选择审核规则模板 + 请选择SQL上线审核规则模板
+
+
+
+
+ +
+
+
+
+
+
- +
-
- - - - -
+ -
- - - - - 请选择{{name}} - -
-
-
+ class="ant-switch-inner-checked" + /> + + +
@@ -1995,91 +2063,31 @@ exports[`page/DataSource/AddDataSource render conenctable modal when current ser
-

- SQL审核配置 -

-
- -
-
-
-
- -
-
-
+ SQL审核配置 +
-
-
-
-
-
- -
-
-
+ 管理不同业务场景下SQL执行所需遵循的审核规则,实现精细化管控 +
-
-
-
+
+ 是否开启SQL审核业务 +
-
-
-
- -
-
-
-
-
-
-
- -
-
-
-
-
- - - - - -
-
- - - - - 请选择{{name}} - -
- -
-
-
-
-
-
-
-
-
-
- default_MySQL1 -
-
- custom_template_b -
-
+
+
@@ -538,7 +538,7 @@ exports[`page/DataSource/DataSourceForm CE render business field when getProject
-

- SQL审核配置 -

+
+

+ SQL审核配置 +

+
+
+ + 管理不同业务场景下SQL执行所需遵循的审核规则,实现精细化管控 + +
+
- 是否开启SQL审核业务 +
+
+ 是否开启SQL审核业务 +
+
+ 关闭后将禁用所用场景的SQL审核 +
+
- SQL工作台查询是否需要审核 +
+
+ 工作台查询审核 +
+
+ 用于SQL工作台实时查询,可按需启用 +
+
-
-
-
- -
-
-
-
-
- - - - - -
-
- - - - - 请选择{{name}} - -
- -
-
-
-
-
-
-
-

- SQL审核配置 -

+
+

+ SQL审核配置 +

+
+
+ + 管理不同业务场景下SQL执行所需遵循的审核规则,实现精细化管控 + +
+
- 是否开启SQL审核业务 +
+
+ 是否开启SQL审核业务 +
+
+ 关闭后将禁用所用场景的SQL审核 +
+
- 审核规则模板 +
+
+ SQL上线审核规则模板 +
+
+ 此功能强制开启审核,请为上线流程选择规则模板 +
+
-
- - - - -
+ -
- - - - - 请选择{{name}} - -
-
-
+ class="ant-switch-inner-checked" + /> + + +
@@ -1448,7 +1516,6 @@ exports[`page/DataSource/DataSourceForm render cancel rule 1`] = ` > -
+
+
+
+

-
-
-
-
- -
-
-
-
- + SQL备份配置 +

-
-
-
+
+ 是否开启数据源上的SQL备份能力 +
-
-
-
- -
-
-
-
- - - - -
-
- - - - 请选择{{name}} + -
+ -
-
-
-
-
- - -
-
-
-
-

- SQL备份配置 -

-
-
-
- -
-
-
-
- -
-
-
-
-
-
-
-
- -
-
-
-
-
-
- - - - - - -
-
-
-
-

- 数据脱敏配置 -

-
-
-
- -
-
-
-
- -
-
-
-
-
-
-
- - - -`; - -exports[`page/DataSource/DataSourceForm render change switch when page is update 2`] = ` - -
-
-
-
-
-

- - - - - 编辑数据源 - -

-
-
-
-
-
-
-
- -
-
-
-
-
-

- 基础配置 -

-
-
-
- -
-
-
-
-
-
- - - - - 700300 - -
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-