1.地址池管理增加 删除限制 2.策略分组管理去掉SNAT/DNAT IP类型

This commit is contained in:
zhangwq
2018-11-29 15:49:47 +08:00
parent 606b8a7550
commit f06e596cda
13 changed files with 92 additions and 14 deletions

View File

@@ -1,6 +1,7 @@
package com.nis.web.controller.configuration.maintenance;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -16,6 +17,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.IpAddrPoolCfg;
import com.nis.domain.configuration.IpMultiplexPoolCfg;
import com.nis.exceptions.MaatConvertException;
@@ -160,4 +162,24 @@ public class IpAddrPoolController extends BaseController{
}
return true;
}
/**
* 校验地址池是否被策略引用
* @param addrPoolIds
* @param request
* @param response
* @return
*/
@ResponseBody
@RequestMapping(value = {"/ajaxIsUsed"})
public boolean ajaxIsUsed(String addrPoolIds, HttpServletRequest request, HttpServletResponse response){
for (String addrPoolId : addrPoolIds.split(",")) {
List<BaseIpCfg> ipList = ipCfgService.checkAddrPoolIsUsed(addrPoolId);
if(ipList != null && ipList.size() > 0){
return false;
}
}
return true;
}
}

View File

@@ -42,6 +42,10 @@
<if test="groupType != null">
AND r.group_type =#{groupType }
</if>
<if test="groupType == null">
AND r.group_type != 2
AND r.group_type != 3
</if>
<if test="asnNo != null">
AND r.asn_no =#{asnNo }
</if>

View File

@@ -47,4 +47,7 @@ public interface IpCfgDao extends CrudDao<BaseIpCfg>{
public void auditCfg(BaseCfg entity);
public List<CfgIndexInfo> getIpCfgList(CfgIndexInfo entity);
// 校验地址池是否被策略引用
public List<BaseIpCfg> checkAddrPoolIsUsed(@Param("addrPoolId")String addrPoolId);
}

View File

@@ -1142,4 +1142,15 @@
</otherwise>
</choose>
</select>
<select id="checkAddrPoolIsUsed" resultMap="BaseIpMap">
SELECT
<include refid="BaseIpCfg_Column_List_with_id" />
FROM
ip_port_cfg
WHERE
is_valid != -1 AND
ir_type IS NOT NULL AND
user_region2 = #{addrPoolId,jdbcType=VARCHAR}
</select>
</mapper>

View File

@@ -931,4 +931,13 @@ public class IpCfgService extends CrudService<IpCfgDao,BaseIpCfg> {
page.setList(list);
return page;
}
/**
* 校验地址池是否被策略引用
* @param addrPoolId
* @return
*/
public List<BaseIpCfg> checkAddrPoolIsUsed(String addrPoolId) {
return ipCfgDao.checkAddrPoolIsUsed(addrPoolId);
}
}

View File

@@ -1336,3 +1336,4 @@ ip_total=IP Total
available_ip_total=Available IP Total
address_pool_id=Address Pool ID
log_to_cfg=Config
address_pool_is_used=Address pool is used and cannot perform this operation!

View File

@@ -1336,3 +1336,4 @@ ip_total=IP Total
available_ip_total=Available IP Total
address_pool_id=Address Pool ID
log_to_cfg=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
address_pool_is_used=Address pool is used and cannot perform this operation!

View File

@@ -1334,3 +1334,4 @@ ip_total=IP\u603B\u6570
available_ip_total=\u53EF\u7528IP\u6570
address_pool_id=\u5730\u5740\u6C60ID
log_to_cfg=\u914D\u7F6E
address_pool_is_used=\u5730\u5740\u6C60\u5DF2\u88AB\u4F7F\u7528\uFF0C\u65E0\u6CD5\u6267\u884C\u8BE5\u64CD\u4F5C\uFF01

View File

@@ -6,8 +6,8 @@ CREATE TABLE `ip_reuse_addr_pool` (
`cfg_id` bigint(20) NOT NULL AUTO_INCREMENT,
`addr_pool_id` int(11) NOT NULL COMMENT '地址池ID',
`addr_pool_name` varchar(128) DEFAULT NULL COMMENT '地址池名称',
`ip_total` int(11) DEFAULT NULL COMMENT '地址池IP总数',
`available_ip_total` int(11) DEFAULT NULL COMMENT '地址池可用IP数',
`ip_total` int(11) NOT NULL DEFAULT 0 COMMENT '地址池IP总数',
`available_ip_total` int(11) NOT NULL DEFAULT 0 COMMENT '地址池可用IP数',
`action` int(11) NOT NULL COMMENT '1:阻断2监测 5 FD 白名单6监测白名单7: FD 监测都白名单应与业务ID所代表的逻辑相匹配8-灰名单',
`is_valid` int(11) NOT NULL COMMENT '0无效1有效-1删除\r\n1 未审核时配置可删除\r\n2 审核通过此字段置1\r\n3 取消审核通过此字段置0',
`is_audit` int(11) NOT NULL COMMENT '0未审核1审核通过2审核未通过3取消审核通过\r\n1 审核未通过,配置可修改\r\n2 审核通过,配置不可删除,只能取消审核通过',

View File

@@ -51,6 +51,7 @@ function del(url){
top.$.jBox.tip("<spring:message code='has_prohibit_delete'/>", "<spring:message code='info'/>");
return;
}else{
var addrPoolIds = [];
var serviceGroupIds=[],ids=[],canDel=true;
$(checkboxes).filter(":checked").each(function(){
if($(this).attr("serviceGroupId")&&$(this).attr("isValid")){
@@ -59,6 +60,10 @@ function del(url){
}
ids.push($(this).attr("id"));
}
var addrPoolId = $(this).attr("addressPoolId");
if(typeof addrPoolId != "undefined"){
addrPoolIds.push(addrPoolId);
}
})
if(serviceGroupIds.length>0){
$.ajax({
@@ -74,6 +79,23 @@ function del(url){
}
});
}
// 地址池管理 (只有未被策略引用的地址池可删除)
if(addrPoolIds.length > 0){
$.ajax({
type:'post',
url:'${ctx}/maintenance/ipMultiplexPoolCfg/ajaxIsUsed',
data:{"addrPoolIds":addrPoolIds.join(',')},
async:false,
success:function(data){//处理返回结果
if(data == false){
top.$.jBox.tip('<spring:message code="address_pool_is_used"/>');
canDel=data;
}
}
});
}
if(canDel){
doAll(checkboxes,url);
}

View File

@@ -83,7 +83,9 @@ $(function(){
<div class="col-md-6">
<select id="groupType" name="groupType" class="selectpicker select2 form-control required" >
<c:forEach items="${fns:getDictList('GROUP_TYPE')}" var="groupTypeC">
<c:if test="${groupTypeC.itemCode ne 2 && groupTypeC.itemCode ne 3}">
<option value="${groupTypeC.itemCode}" <c:if test="${_cfg.groupType==groupTypeC.itemCode || (_cfg.groupType==null && groupTypeC.itemCode==1)}">selected</c:if>><spring:message code="${groupTypeC.itemValue}"/></option>
</c:if>
</c:forEach>
</select>
</div>

View File

@@ -119,6 +119,7 @@
<select name="groupType" class="selectpicker select2 input-small">
<option value=""><spring:message code="all_types"/></option>
<c:forEach items="${fns:getDictList('GROUP_TYPE')}" var="groupTypeC">
<c:if test="${groupTypeC.itemCode ne 2 && groupTypeC.itemCode ne 3}">
<option value="${groupTypeC.itemCode}"
<c:if test="${cfg.groupType==groupTypeC.itemCode}">
selected
@@ -126,6 +127,7 @@
>
<spring:message code="${groupTypeC.itemValue}"/>
</option>
</c:if>
</c:forEach>
</select>
</div>

View File

@@ -314,7 +314,7 @@
<tbody>
<c:forEach items="${page.list }" var="cfg" varStatus="status" step="1">
<tr>
<td><input type="checkbox" class="i-checks" serviceId="${cfg.serviceId}" id="${cfg.cfgId}" value="${cfg.isAudit}"></td>
<td><input type="checkbox" class="i-checks" serviceId="${cfg.serviceId}" id="${cfg.cfgId}" value="${cfg.isAudit}" addressPoolId="${cfg.addrPoolId }" ></td>
<td>${cfg.addrPoolId }</td>
<td>
<a href="javascript:;" data-original-title="${cfg.addrPoolName}"