mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-03-17 03:04:46 +08:00
fix: 解决病毒扫描病毒策略更新失败的问题 (#5709)
This commit is contained in:
parent
0d3e834b37
commit
0c2653d270
@ -135,6 +135,9 @@ func (f *ClamService) Create(req dto.ClamCreate) error {
|
|||||||
if err := copier.Copy(&clam, &req); err != nil {
|
if err := copier.Copy(&clam, &req); err != nil {
|
||||||
return errors.WithMessage(constant.ErrStructTransform, err.Error())
|
return errors.WithMessage(constant.ErrStructTransform, err.Error())
|
||||||
}
|
}
|
||||||
|
if clam.InfectedStrategy == "none" || clam.InfectedStrategy == "remove" {
|
||||||
|
clam.InfectedDir = ""
|
||||||
|
}
|
||||||
if err := clamRepo.Create(&clam); err != nil {
|
if err := clamRepo.Create(&clam); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -146,9 +149,14 @@ func (f *ClamService) Update(req dto.ClamUpdate) error {
|
|||||||
if clam.ID == 0 {
|
if clam.ID == 0 {
|
||||||
return constant.ErrRecordNotFound
|
return constant.ErrRecordNotFound
|
||||||
}
|
}
|
||||||
|
if req.InfectedStrategy == "none" || req.InfectedStrategy == "remove" {
|
||||||
|
req.InfectedDir = ""
|
||||||
|
}
|
||||||
upMap := map[string]interface{}{}
|
upMap := map[string]interface{}{}
|
||||||
upMap["name"] = req.Name
|
upMap["name"] = req.Name
|
||||||
upMap["path"] = req.Path
|
upMap["path"] = req.Path
|
||||||
|
upMap["infected_dir"] = req.InfectedDir
|
||||||
|
upMap["infected_strategy"] = req.InfectedStrategy
|
||||||
upMap["description"] = req.Description
|
upMap["description"] = req.Description
|
||||||
if err := clamRepo.Update(req.ID, upMap); err != nil {
|
if err := clamRepo.Update(req.ID, upMap); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -127,7 +127,7 @@ export const searchClamBaseInfo = () => {
|
|||||||
return http.post<Toolbox.ClamBaseInfo>(`/toolbox/clam/base`);
|
return http.post<Toolbox.ClamBaseInfo>(`/toolbox/clam/base`);
|
||||||
};
|
};
|
||||||
export const updateClamBaseInfo = (operate: string) => {
|
export const updateClamBaseInfo = (operate: string) => {
|
||||||
return http.post(`/toolbox/clam/operate`, { Operation: operate });
|
return http.post(`/toolbox/clam/operate`, { Operation: operate }, TimeoutEnum.T_60S);
|
||||||
};
|
};
|
||||||
export const searchClam = (param: ReqPage) => {
|
export const searchClam = (param: ReqPage) => {
|
||||||
return http.post<ResPage<Toolbox.ClamInfo>>(`/toolbox/clam/search`, param);
|
return http.post<ResPage<Toolbox.ClamInfo>>(`/toolbox/clam/search`, param);
|
||||||
|
@ -53,12 +53,12 @@
|
|||||||
import { reactive, ref } from 'vue';
|
import { reactive, ref } from 'vue';
|
||||||
import { Rules } from '@/global/form-rules';
|
import { Rules } from '@/global/form-rules';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElForm, FormItemRule } from 'element-plus';
|
import { ElForm } from 'element-plus';
|
||||||
import DrawerHeader from '@/components/drawer-header/index.vue';
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import { MsgSuccess } from '@/utils/message';
|
import { MsgSuccess } from '@/utils/message';
|
||||||
import { Host } from '@/api/interface/host';
|
import { Host } from '@/api/interface/host';
|
||||||
import { operateForwardRule } from '@/api/modules/host';
|
import { operateForwardRule } from '@/api/modules/host';
|
||||||
import { checkCidr, checkIpV4V6, deepCopy } from '@/utils/util';
|
import { checkCidr, checkIpV4V6, checkPort, deepCopy } from '@/utils/util';
|
||||||
|
|
||||||
const loading = ref();
|
const loading = ref();
|
||||||
const oldRule = ref<Host.RuleForward>();
|
const oldRule = ref<Host.RuleForward>();
|
||||||
@ -87,23 +87,22 @@ const handleClose = () => {
|
|||||||
drawerVisible.value = false;
|
drawerVisible.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const strPortValidator: FormItemRule = {
|
|
||||||
required: true,
|
|
||||||
trigger: 'blur',
|
|
||||||
validator: (_, value: string) => {
|
|
||||||
const port = parseInt(value);
|
|
||||||
return port >= 1 && port <= 65535;
|
|
||||||
},
|
|
||||||
message: i18n.global.t('commons.rule.port'),
|
|
||||||
};
|
|
||||||
|
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
protocol: [Rules.requiredSelect],
|
protocol: [Rules.requiredSelect],
|
||||||
port: [Rules.requiredInput, strPortValidator],
|
port: [{ validator: checkPortRule, trigger: 'blur' }],
|
||||||
targetPort: [Rules.requiredInput, strPortValidator],
|
targetPort: [{ validator: checkPortRule, trigger: 'blur' }],
|
||||||
targetIP: [{ validator: checkAddress, trigger: 'blur' }],
|
targetIP: [{ validator: checkAddress, trigger: 'blur' }],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function checkPortRule(rule: any, value: string, callback: any) {
|
||||||
|
if (!value) {
|
||||||
|
return callback();
|
||||||
|
}
|
||||||
|
if (checkPort(value)) {
|
||||||
|
return callback(new Error(i18n.global.t('firewall.portFormatError')));
|
||||||
|
}
|
||||||
|
callback();
|
||||||
|
}
|
||||||
function checkAddress(rule: any, value: string, callback: any) {
|
function checkAddress(rule: any, value: string, callback: any) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return callback();
|
return callback();
|
||||||
|
@ -151,7 +151,7 @@ const data = ref();
|
|||||||
const paginationConfig = reactive({
|
const paginationConfig = reactive({
|
||||||
cacheSizeKey: 'clam-page-size',
|
cacheSizeKey: 'clam-page-size',
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
pageSize: Number(localStorage.getItem('ftp-page-size')) || 10,
|
pageSize: Number(localStorage.getItem('clam-page-size')) || 10,
|
||||||
total: 0,
|
total: 0,
|
||||||
orderBy: 'created_at',
|
orderBy: 'created_at',
|
||||||
order: 'null',
|
order: 'null',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user