拦截IP相关功能提交

This commit is contained in:
duandongmei
2018-08-21 13:38:26 +08:00
parent 5ee8b5a857
commit 122e763b1b
47 changed files with 4311 additions and 432 deletions

View File

@@ -1,65 +1,67 @@
/*
* Translated default messages for the jQuery validation plugin.
* Locale: RU (Russian; русский язык)
* Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
*/
(function ($) {
$.extend($.validator.messages, {
required: "Это поле необходимо заполнить.",
remote: "Пожалуйста, введите правильное значение.",
email: "Пожалуйста, введите корректный адрес электронной почты.",
url: "Пожалуйста, введите корректный URL.",
date: "Пожалуйста, введите корректную дату.",
dateISO: "Пожалуйста, введите корректную дату в формате ISO.",
number: "Пожалуйста, введите число.",
digits: "Пожалуйста, вводите только цифры.",
creditcard: "Пожалуйста, введите правильный номер кредитной карты.",
equalTo: "Пожалуйста, введите такое же значение ещё раз.",
accept: "Пожалуйста, выберите файл с правильным расширением.",
maxlength: $.validator.format("Пожалуйста, введите не больше {0} символов."),
minlength: $.validator.format("Пожалуйста, введите не меньше {0} символов."),
rangelength: $.validator.format("Пожалуйста, введите значение длиной от {0} до {1} символов."),
range: $.validator.format("Пожалуйста, введите число от {0} до {1}."),
max: $.validator.format("Пожалуйста, введите число, меньшее или равное {0}."),
min: $.validator.format("Пожалуйста, введите число, большее или равное {0}."),
ipCheck: $.validator.format(" Пожалуйста, введите  правильный  IP - адрес."),
ipMask:"Please enter a correct IP/mask",
ipPart:"Invalid IP part",
ipv6MaskPart:"Mask must be exponent of 2,not greater than 128",
ipMaskRange:"IP mask must between 0 and 32",
srcIpNotEqDestIp:"Sourse IP and destination IP can't the same",
ipRange:"Wrong IP format or start IP and end IP in two subnet",
ipRange1:"start IP should smaller than end IP",
portCheck: " Пожалуйста, введите  правильный  порт.",
portRange:"Port must between 0 and 65535",
srcIpNotEqDestIp:"Sourse IP ",
destIpNotEqDestIp:" and destination IP ",
srcIpIsNotValue:"Sourse IP can't be ",
destIpIsNotValue:"Destination IP can't be ",
IpNotEqDestIp:" can't the same",
portMaskRange:"Port and mask must between 0 and 65535.The correct pattern is \"port/mask\".",
chooseAreaOrIsp:"The region and the oprater must choose one",
areaControl:"Action drop and loop do not need area control",
ip_type: "ip type",
ip_pattern: "ip Pattern",
area: "area",
isp: "isp",
close_info: "close",
client_ip: "client ip",
required: "Необходимая информация",
remote: "Исправьте эту информацию",
email: "Введите правильный адрес электронной почты",
url: "Введите действительный URL-адрес",
date: "Введите действительную дату",
dateISO: "Введите действительную дату (ISO).",
number: "Введите действительный номер",
digits: "Может вводить только целые числа",
creditcard: "Введите действительный номер кредитной карты",
equalTo: "Повторите одно и то же значение",
accept: "Введите строку с юридическим суффиксом",
maxlength: $.validator.format("Введите строку с максимальной длиной {0}"),
minlength: $.validator.format("Введите строку с минимальной длиной {0}"),
rangelength: $.validator.format("Введите строку символов,длина которой между {0} и {1}"),
range: $.validator.format("Введите значение между {0} и {1}"),
max: $.validator.format("Введите значение до {0}"),
min: $.validator.format("Введите значение с минимальным значением {0}"),
noBlankSpace:"Не может быть пробела",
ip:"Заполните правильный IP-адрес",
ipCheck:"Заполните правильный IP-адрес",
ipMask:"Заполните правильный IP-адрес / маска",
ipPart:"Ошибка формата части IP",
ipv6MaskPart:"Mаска-показатель степени 2, небольше 128",
ipMaskRange:"Маска IP между 0 и 32",
srcIpNotEqDestIp:"IP-адрес источника ",
destIpNotEqDestIp:" с IP-адресом назначения",
IpNotEqDestIp:" не может быть одинаковым",
srcIpIsNotValue:"IP-адрес источника не может быть ",
destIpIsNotValue:"IP-адрес назначения не может быть",
ipRange:"Формат диапазона IP неверен, или начальный IP-адрес и конечный IP-адрес не относятся к одному и тому же сегменту сети.",
ipRange1:"Начальное значение IP должно меньше конечного значения IP.",
portCheck:"Заполните правильный порт",
notStartZero:"Пожалуйста, введите правильное значение",
portRange:"Порт должен быть меньше 65536, отличные от нуля номера не могут начинаться с 0",
portMaskRange:"Порт должен меньше 65536, отличные от нуля номера не могут начинаться с 0.Формат\"порт/маска\"",
chooseAreaOrIsp:"Необходимо выбрать один регион и оператор",
areaControl:"Действия выброса и рефлюкса не могут контролироваться на региональном уровне",
ip_type: "Тип ip",
ip_pattern: "Формат ip",
area: "Зона",
isp: "Оператор",
close_info: "Закрыть",
client_ip: " IP",
ipv4: "IPv4",
ipv6: "IPv6",
over6: "4over6",
over4: "6over4",
ipv4v6:"IPv4(0.0.0.0) or IPv6(::)",
all: "all",
ip_subnet: "Subnet",
ip_range: "ip Range",
timeout:"timeout",
areaIpPrefix:"Forbiden value: ",
domainCheck:"Please enter a valid domain.",
checkParent:"Configuration Type must match it's parent.",
specServiceCodeCheck:"Protocol No is repeat.",
compareDate:"The end time should not be earlier than the start time.",
hexCheck:"Please enter the HEX format character",
invisibleChar:"Please enter the visible character"
ipv4v6:"Введите действительный IP-адрес, например IPv4 (0.0.0.0) или IPv6 (::)",
all: "Все",
ip_subnet:"Маска IP-адреса/Маска подсети",
ip_range: "Диапазон IP",
timeout:"Превышение срока",
areaIpPrefix:"Запрещенное значение: ",
domainCheck:"Введите действительное доменное имя",
checkParent:"Тип конфигурации должен соответствовать предыдущей конфигурации!",
specServiceCodeCheck:"Повторяющийся номер протокола",
compareDate:"Время окончания нельзя раньше времени начала",
hexCheck:"Введите шестнадцатеричный символ",
invisibleChar:"Введите видимые символы"
});
}(jQuery));
}(jQuery));

View File

@@ -362,7 +362,201 @@ $(function(){
$(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId"));
$("#protocolId").val($(this).attr("protocolId"));
});
var actionCode=$(this).val();
var regionCode=$(this).attr("regionCode");
if(!regionCode){
regionCode=$("input[name='action']").attr("regionCode");
}
if(regionCode){
if(regionCode.indexOf(",")==-1){
$("#cfgRegionCode"+regionCode).attr("name","cfgRegionCode");
$("#cfgType"+regionCode).attr("name","cfgType");
$("[id^='cfgRegionCode']").each(function(){
if($(this).attr("id")==("cfgRegionCode"+regionCode)){
$(this).attr("name","cfgRegionCode");
}else{
$(this).removeAttr("name");
}
});
$("[id^='cfgType']").each(function(){
if($(this).attr("id")==("cfgType"+regionCode)){
$(this).attr("name","cfgType");
}else{
$(this).removeAttr("name");
}
});
}else{
var _region='';
var regionArr=regionCode.split(',');
$("input[name$='cfgRegionCode'][regionType='1']").each(function(){
for(var re in regionArr){
if($(this).val()==regionArr[re]){
serviceType=$(this).attr("serviceType");
_region=regionArr[re];
break;
}
}
});
if(_region!=''){
regionCode=_region;
}
}
var ipPortShow=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPortShow"),
ipType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipType"),
ipPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPattern"),
portPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("portPattern"),
direction=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("direction"),
protocol=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("protocol"),
regionType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("regionType");
//ip端口处理
if(ipPortShow){
if(ipPortShow.indexOf('1')>-1){//展示源IP,端口
$("input[name$='srcIpAddress']").parents(".form-group").removeClass("hidden");
$("input[name$='srcPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='srcIpAddress']").parents(".form-group").addClass("hidden");
$("input[name$='srcPort']").parents(".form-group").addClass("hidden");
}
if(ipPortShow.indexOf('2')>-1){//展示目的IP,端口
$("input[name$='destIpAddress']").parents(".form-group").removeClass("hidden");
$("input[name$='destPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='destIpAddress']").parents(".form-group").addClass("hidden");
$("input[name$='destPort']").parents(".form-group").addClass("hidden");
}
}
if(ipType){
var arr=ipType.split(',');
$("select[name$='ipType'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
$("select[name$='ipType']").selectpicker("refresh");
}
if(ipPattern){
arr=ipPattern.split(',');
$("select[name$='ipPattern'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
$("select[name$='ipPattern']").selectpicker("refresh");
}
if(portPattern){
arr=portPattern.split(',');
$("select[name$='portPattern'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
$("select[name$='portPattern']").selectpicker("refresh");
}
if(direction){
arr=direction.split(',');
$("select[name$='direction'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
$("select[name$='direction']").selectpicker("refresh");
}
if(protocol){
arr=protocol.split(',');
$("select[name$='protocol'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
$("select[name$='protocol']").selectpicker("refresh");
}
//处理自定义字段
var serviceType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("serviceType");
if(serviceType){
if(serviceType.indexOf("ipaddr")>-1){
if($(this).val()==32){
$("select[name$='protocol'] option[value='1']").removeAttr("disabled")
}else{
$("select[name$='protocol'] option[value='1']").attr("disabled",true);
}
$("select[name$='protocol']").selectpicker("refresh");
}
if(serviceType.indexOf("ipmulitiplex")>-1){
$(".ipmulitiplex").removeClass("hidden");
}else{
$(".ipmulitiplex").addClass("hidden");
}
if(serviceType.indexOf("ratelimit")>-1){
if($(this).val()==64){
$(".ratelimit").removeClass("hidden");
}else{
$(".ratelimit").addClass("hidden");
}
}else{
$(".ratelimit").addClass("hidden");
}
if($(this).val()==0x20||$(this).val()==0x60){
$("input[name$='isAreaEffective']").each(function(){
if($(this).val()==0){
$(this).click();
}
})
}
}
}
});
//选择hex cfgkeywords需校验十六进制
$("select[name$='isHexbin']").each(function(){
$(this).on("change",function(){
@@ -431,6 +625,7 @@ $(function(){
$("input[name*='userRegion']").addClass("invisibleChar");
$("#cancel").on("click",function(){
window.history.back();
return false;
});
});
window.onload=function(){
@@ -1187,4 +1382,189 @@ var validateInvisibleCharTag=function(){
return false;
}
return true;
}
var initCommIpVal=function(){
var regionCode,serviceType,ipPortShow,ipType,
ipPattern,portPattern,direction,protocol,regionType;
if($("input[name$='action']:checked").length>0){
regionCode=$("input[name$='action']:checked").attr("regionCode");
}else{
regionCode=$("input[name$='action']").attr("regionCode");
}
if(regionCode){
if(regionCode.indexOf(",")==-1){
$("#cfgRegionCode"+regionCode).attr("name","cfgRegionCode");
$("#cfgType"+regionCode).attr("name","cfgType");
serviceType=$("input[name$='cfgRegionCode'][regionType='1'][value='"+regionCode+"']").attr("serviceType");
}else{
var _region='';
var regionArr=regionCode.split(',');
$("input[name$='cfgRegionCode'][regionType='1']").each(function(){
for(var re in regionArr){
if($(this).val()==regionArr[re]){
serviceType=$(this).attr("serviceType");
_region=regionArr[re];
break;
}
}
});
if(_region!=''){
regionCode=_region;
}
}
}
if(serviceType){
if(serviceType.indexOf("ipaddr")>-1&&$("input[name$='action']:checked").val()==32){
$("select[name$='protocol'] option").each(function(){
if($(this).attr("value")==1){
$(this).removeAttr("disabled");
}
});
$("select[name$='protocol']").selectpicker("refresh");
}
if(serviceType&&serviceType.indexOf("ipaddr")>-1&&$("input[name$='action']").val()==32){
$("select[name$='protocol'] option").each(function(){
if($(this).attr("value")==1){
$(this).removeAttr("disabled");
}
});
$("select[name$='protocol']").selectpicker("refresh");
}
if(serviceType.indexOf("ipmulitiplex")>-1){
$(".ipmulitiplex").removeClass("hidden");
$("input[name$='isAreaEffective']").each(function(){
if($(this).val()==0){
$(this).click();
}
})
$(".areaInfo").addClass("hidden");
}else{
$(".areaInfo").removeClass("hidden");
$(".ipmulitiplex").addClass("hidden");
}
if(serviceType.indexOf("ratelimit")>-1){
if($("input[name$='action']").val()==64||$("input[name$='action']:checked").val()==64){
$(".ratelimit").removeClass("hidden");
}else{
$(".ratelimit").addClass("hidden");
}
}else{
$(".ratelimit").addClass("hidden");
}
}
ipPortShow=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPortShow"),
ipType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipType"),
ipPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("ipPattern"),
portPattern=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("portPattern"),
direction=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("direction"),
protocol=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("protocol"),
regionType=$("input[name$='cfgRegionCode'][value='"+regionCode+"']").attr("regionType");
//ip端口处理
if(ipPortShow){
if(ipPortShow.indexOf('1')>-1){//展示源IP,端口
$("input[name$='srcIpAddress']").parents(".form-group").removeClass("hidden");
$("input[name$='srcPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='srcIpAddress']").parents(".form-group").addClass("hidden");
$("input[name$='srcPort']").parents(".form-group").addClass("hidden");
}
if(ipPortShow.indexOf('2')>-1){//展示目的IP,端口
$("input[name$='destIpAddress']").parents(".form-group").removeClass("hidden");
$("input[name$='destPort']").parents(".form-group").removeClass("hidden");
}else{
$("input[name$='destIpAddress']").parents(".form-group").addClass("hidden");
$("input[name$='destPort']").parents(".form-group").addClass("hidden");
}
}
if(ipType){
var arr=ipType.split(',');
$("select[name$='ipType'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
}
if(ipPattern){
arr=ipPattern.split(',');
$("select[name$='ipPattern'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
}
if(portPattern){
arr=portPattern.split(',');
$("select[name$='portPattern'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
}
if(direction){
arr=direction.split(',');
$("select[name$='direction'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
}
if(protocol){
arr=protocol.split(',');
$("select[name$='protocol'] option").each(function(){
var has=false;
for(var type in arr){
if($(this).val()==arr[type]){
has=true;
if($(this).attr("disabled")){
$(this).removeAttr("disabled")
}
break;
}
}
if(!has){
$(this).attr("disabled",true);
}
});
}
return regionCode;
}