diff --git a/plugins/op_waf/index.py b/plugins/op_waf/index.py
index d3325ae9f..3d34457ba 100755
--- a/plugins/op_waf/index.py
+++ b/plugins/op_waf/index.py
@@ -1054,24 +1054,41 @@ def removeSiteCdnHeader():
def outputData():
args = getArgs()
- data = checkArgs(args, ['s_Name'])
+ data = checkArgs(args, ['sname'])
if not data[0]:
return data[1]
- path = getRuleJsonPath(args['s_Name'])
+ path = getRuleJsonPath(args['sname'])
content = mw.readFile(path)
return mw.returnJson(True, 'ok', content)
def importData():
args = getArgs()
- data = checkArgs(args, ['s_Name', 'pdata'])
+ data = checkArgs(args, ['sname', 'pdata'])
if not data[0]:
return data[1]
- path = getRuleJsonPath(args['s_Name'])
- mw.writeFile(path, args['pdata'])
- restartWeb()
+ path = getRuleJsonPath(args['sname'])
+
+ source_data = mw.readFile(path)
+ source_data = json.loads(source_data)
+
+ save_data = []
+ save_data.append(source_data[0])
+ pdata = args['pdata'].strip()
+ try:
+ pdata = json.loads(pdata)
+ mw.writeFile(path, json.dumps(pdata))
+ except Exception as e:
+ pdata = pdata.split("\\n")
+ for x in pdata:
+ pval = x.strip()
+ if pval != "":
+ vv = json.loads(pval)
+ save_data.append(vv[0])
+ mw.writeFile(path, json.dumps(save_data))
+ # restartWeb()
return mw.returnJson(True, '设置成功!')
diff --git a/plugins/op_waf/js/op_waf.js b/plugins/op_waf/js/op_waf.js
index 469029adb..1e635df7d 100755
--- a/plugins/op_waf/js/op_waf.js
+++ b/plugins/op_waf/js/op_waf.js
@@ -568,14 +568,14 @@ function outputLayer(rdata, name, type) {
'
' +
'
' +
'
导入格式如下:' +
- (name == 'ip_white' || name == 'ip_black' ? "[[[127, 0, 0, 1],[127, 0, 0, 255]]]" : "[\"^/test\",\"^/web\"]") +
+ (name == 'ip_white' || name == 'ip_black' ? "[[[127, 0, 0, 1],[127, 0, 0, 255]],[[192, 0, 0, 1],[192, 0, 0, 255]]]" : "[\"^/test\",\"^/web\"]") +
'
' +
'
' +
'' +
'' +
(type ? '' : '') +
'
' +
- ''
+ '',
});
var lead_error = CodeMirror.fromTextArea(document.getElementById("lead_data"), {
mode: 'html',
@@ -585,7 +585,10 @@ function outputLayer(rdata, name, type) {
});
setTimeout(function () {
$('.btn_save').on('click', function () {
- importData(name, lead_error.getValue());
+ importData(name, lead_error.getValue(), function(){
+ layer.close(window.Load_layer);
+ ipWhiteLoadList();
+ });
})
$('.btn_save_to').on('click', function () {
funDownload(lead_error.getValue(), name + '.json');
@@ -601,7 +604,7 @@ function outputLayer(rdata, name, type) {
function outputData(name, callback) {
var loadT = layer.msg('正在导出数据..', { icon: 16, time: 0 });
- owPost('output_data', { s_Name: name } , function(data){
+ owPost('output_data', { sname: name } , function(data){
var tmp = $.parseJSON(data.data);
var rdata = $.parseJSON(tmp.data);
if (callback) callback(rdata,res);
@@ -611,7 +614,7 @@ function outputData(name, callback) {
//导入数据
function importData(name, pdata, callback) {
- owPost('import_data', { s_Name: name, pdata: pdata } , function(data){
+ owPost('import_data', { sname: name, pdata: pdata } , function(data){
var rdata = $.parseJSON(data.data);
if (callback) callback();
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 });
@@ -622,6 +625,22 @@ function fileInput(name) {
outputLayer('', name, false);
}
+
+function ipWhiteLoadList(){
+ getRuleByName('ip_white', function(data){
+ var tmp = $.parseJSON(data.data);
+ var rdata = $.parseJSON(tmp.data);
+ var tbody = ''
+ for (var i = 0; i < rdata.length; i++) {
+ tbody += '\
+ | '+ rdata[i][0].join('.') + ' | \
+ '+ rdata[i][1].join('.') + ' | \
+ 删除 | \
+
'
+ }
+ $("#ip_white_con").html(tbody);
+ });
+}
//IP白名单
function ipWhite(type) {
if (type == undefined) {
@@ -675,20 +694,7 @@ function ipWhite(type) {
});
tableFixed("ipWhite");
}
-
- getRuleByName('ip_white', function(data){
- var tmp = $.parseJSON(data.data);
- var rdata = $.parseJSON(tmp.data);
- var tbody = ''
- for (var i = 0; i < rdata.length; i++) {
- tbody += '\
- | '+ rdata[i][0].join('.') + ' | \
- '+ rdata[i][1].join('.') + ' | \
- 删除 | \
-
'
- }
- $("#ip_white_con").html(tbody);
- });
+ ipWhiteLoadList();
}
//IP白名单