安全组相关代码优化.

This commit is contained in:
aoshiguchen
2023-12-10 20:43:23 +08:00
parent 306cd66034
commit bb96caca64
6 changed files with 34 additions and 27 deletions
+2 -18
View File
@@ -31,11 +31,11 @@ export function createGroup(data) {
})
}
export function updateGroup(data) {
export function updateGroup(query) {
return request({
url: `/security/group/update`,
method: 'post',
data
params: query
})
}
@@ -58,22 +58,6 @@ export function updateGroupEnableStatus(id, enable) {
})
}
export function enableGroup(query) {
return request({
url: '/security/group/enable',
method: 'post',
params: query
})
}
export function disableGroup(query) {
return request({
url: '/security/group/disable',
method: 'post',
params: query
})
}
export function fetchRuleList(query) {
return request({
url: '/security/rule/list',
@@ -2,6 +2,7 @@
<div class="app-container calendar-list-container">
<div class="filter-container">
<el-input v-model="listQuery.name" style="width:145px;margin-right:10px" placeholder="请输入名称" />
<el-input v-model="listQuery.description" style="width:145px;margin-right:10px" placeholder="请输入描述" />
<el-select v-model="listQuery.enable" placeholder="请选择启用状态" clearable style="width:145px;margin-right:10px">
<el-option v-for="item in selectObj.statusOptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
@@ -119,34 +120,34 @@
</el-dialog>
<el-dialog :title="$t('table.securityGroupBindPortMapping')+'---'+forBindProtMappingSecurityGroup.name+'安全组'" :visible.sync="dialogBindPortMappingVisible" width="90%">
<el-table :key='tableKey' :data="portMappingList" v-loading="listLoading" element-loading-text="给我一点时间" border fit align="center" width="100%"
<el-table :key='tableKey' :data="portMappingList" v-loading="listLoading" element-loading-text="给我一点时间" border width="100%"
highlight-current-row style="width: 100%">
<el-table-column align="center" :label="$t('table.id')" width="50">
<template slot-scope="scope">
<span>{{ scope.row.id }}</span>
</template>
</el-table-column>
<el-table-column align="center" :label="$t('table.licenseName')" width="130">
<el-table-column align="center" :label="$t('table.licenseName')">
<template slot-scope="scope">
<span>{{ scope.row.licenseName }}</span>
</template>
</el-table-column>
<el-table-column align="center" :label="$t('table.protocalName')" width="100">
<el-table-column align="center" :label="$t('table.protocalName')" width="120">
<template slot-scope="scope">
<span>{{ scope.row.protocal }}</span>
</template>
</el-table-column>
<el-table-column align="center" :label="$t('table.domainName')" width="200">
<el-table-column align="center" :label="$t('table.domainName')">
<template slot-scope="scope">
<span>{{ scope.row.domain }}</span>
</template>
</el-table-column>
<el-table-column align="center" :label="$t('table.serverPort')" width="80">
<el-table-column align="center" :label="$t('table.serverPort')" width="100">
<template slot-scope="scope">
<span>{{ scope.row.serverPort }}</span>
</template>
</el-table-column>
<el-table-column align="center" :label="$t('table.proxyClient')" width="120">
<el-table-column align="center" :label="$t('table.proxyClient')" width="200">
<template slot-scope="scope">
<span>{{ scope.row.clientIp }}:{{ scope.row.clientPort }}</span>
</template>
@@ -156,12 +157,12 @@
<span>{{ scope.row.description }}</span>
</template>
</el-table-column>
<el-table-column class-name="status-col" :label="$t('table.enableStatus')" width="100">
<el-table-column class-name="status-col" :label="$t('table.enableStatus')" width="120">
<template slot-scope="scope">
<el-tag :type="scope.row.enable | statusFilter">{{ scope.row.enable | statusName }}</el-tag>
</template>
</el-table-column>
<el-table-column align="center" :label="$t('table.actions')" width="120" class-name="small-padding fixed-width">
<el-table-column align="center" :label="$t('table.actions')" width="150" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button type="primary" size="mini" v-if="!scope.row.securityGroupId" @click="handleBind(scope.row)">{{$t('table.bind')}}</el-button>
<el-button type="danger" size="mini" v-if="scope.row.securityGroupId && scope.row.securityGroupId == forBindProtMappingSecurityGroup.id" @click="handleUnbind(scope.row)">{{$t('table.unbind')}}</el-button>
@@ -204,6 +205,7 @@ import LinkPopover from '../../components/Link/linkPopover'
current: 1,
size: 10,
name: undefined,
description: undefined,
enable: undefined
},
listLoading: true,
@@ -381,7 +383,7 @@ import LinkPopover from '../../components/Link/linkPopover'
})
},
handleDelete(row) {
deleteGroup(row.id).then(response => {
deleteGroup({groupId: row.id}).then(response => {
if (response.data.code === 0) {
this.$notify({
title: '成功',
@@ -72,6 +72,8 @@ public class SecurityController {
@Post
@Mapping("/group/delete")
public void deleteGroup(Integer groupId) {
ParamCheckUtil.checkNotNull(groupId, "groupId");
groupService.deleteGroup(groupId);
}
@@ -1,6 +1,7 @@
package org.dromara.neutrinoproxy.server.controller.req.system;
import lombok.Data;
import org.dromara.neutrinoproxy.server.constant.SecurityRulePassTypeEnum;
/**
* @author: wen.y
@@ -9,5 +10,13 @@ import lombok.Data;
@Data
public class SecurityGroupListReq {
private String name;
/**
* 描述
*/
private String description;
/**
* 通过类型
*/
private SecurityRulePassTypeEnum defaultPassType;
private Integer enable;
}
@@ -73,6 +73,10 @@ public class SecurityGroupService {
//描述字段为模糊查询,在应用层处理,否则sqlite不支持
req.setName("%" + req.getName() + "%");
}
if (StringUtils.isNotEmpty(req.getDescription())) {
//描述字段为模糊查询,在应用层处理,否则sqlite不支持
req.setDescription("%" + req.getDescription() + "%");
}
Page<SecurityGroupDO> page = new Page<>(pageQuery.getCurrent(), pageQuery.getSize());
List<SecurityGroupDO> list = securityGroupMapper.selectByCondition(page, req);
if (CollectionUtils.isEmpty(list)) {
@@ -8,6 +8,12 @@
<if test="req.name != null and req.name != '' ">
AND sg.name like #{req.name}
</if>
<if test="req.description != null and req.description != '' ">
AND sg.description like #{req.description}
</if>
<if test="req.defaultPassType != null">
AND sg.default_pass_type like #{req.defaultPassType}
</if>
<if test="req.enable != null">
AND sg.enable like #{req.enable}
</if>