/** op **/ // $(".set-submit").click(function(){ // var data = $("#set_config").serialize(); // layer.msg('正在保存配置...',{icon:16,time:0,shade: [0.3, '#000']}); // $.post('/config/set',data,function(rdata){ // layer.closeAll(); // layer.msg(rdata.msg,{icon:rdata.status?1:2}); // if(rdata.status){ // setTimeout(function(){ // window.location.href = ((window.location.protocol.indexOf('https') != -1)?'https://':'http://') + rdata.data.host + window.location.pathname; // },2500); // } // },'json'); // }); $('input[name="webname"]').change(function(){ var webname = $(this).val(); $('.btn_webname').removeAttr('disabled'); $('.btn_webname').unbind().click(function(){ $.post('/setting/set_webname','webname='+webname, function(rdata){ showMsg(rdata.msg,function(){window.location.reload();},{icon:rdata.status?1:2},2000); },'json'); }); }); $('input[name="host_ip"]').change(function(){ var host_ip = $(this).val(); $('.btn_host_ip').removeAttr('disabled'); $('.btn_host_ip').unbind().click(function(){ $.post('/setting/set_ip','host_ip='+host_ip, function(rdata){ showMsg(rdata.msg,function(){window.location.reload();},{icon:rdata.status?1:2},2000); },'json'); }); }); $('input[name="port"]').change(function(){ var port = $(this).val(); var old_port = $(this).data('port'); $('.btn_port').removeAttr('disabled'); $('.btn_port').unbind().click(function(){ $.post('/setting/set_port','port='+port, function(rdata){ showMsg(rdata.msg,function(){ window.location.href = window.location.href.replace(old_port,port); // window.location.reload(); },{icon:rdata.status?1:2},5000); },'json'); }); }); $('input[name="sites_path"]').change(function(){ var sites_path = $(this).val(); $('.btn_sites_path').removeAttr('disabled'); $('.btn_sites_path').unbind().click(function(){ $.post('/setting/set_www_dir','sites_path='+sites_path, function(rdata){ showMsg(rdata.msg,function(){window.location.reload();},{icon:rdata.status?1:2},2000); },'json'); }); }); $('input[name="backup_path"]').change(function(){ var backup_path = $(this).val(); $('.btn_backup_path').removeAttr('disabled'); $('.btn_backup_path').unbind().click(function(){ $.post('/setting/set_backup_dir','backup_path='+backup_path, function(rdata){ showMsg(rdata.msg,function(){window.location.reload();},{icon:rdata.status?1:2},2000); },'json'); }); }); $('input[name="bind_domain"]').change(function(){ var domain = $(this).val(); $('.btn_bind_domain').removeAttr('disabled'); $('.btn_bind_domain').unbind().click(function(){ $.post('/setting/set_panel_domain','domain='+domain, function(rdata){ showMsg(rdata.msg,function(){ window.location.href = rdata.data; },{icon:rdata.status?1:2},5000); },'json'); }); }); $('input[name="bind_ssl"]').click(function(){ var panel_ssl = $(this).prop("checked"); $(this).prop("checked",!panel_ssl); //开启证书 if (panel_ssl){ // layer.open({ type:1, closeBtn: 1, title:"开启SSL证书", area: ['600px','440px'], btn: ["开启SSL证书访问"], maxmin:false, shadeClose: true, content: '
\
\

【开启SSL证书】保护面板访问安全

\
\ \
\
\ 类型\
\ \
\
\ \
\
', yes: function(){ var cert_type = $('select[name=cert_type]').val(); $.post('/setting/set_panel_local_ssl',{'cert_type':cert_type}, function(rdata){ // console.log(rdata); var to_https = window.location.href.replace('http','https'); showMsg(rdata.msg,function(){ if (rdata.status){ window.location.href = to_https; } },{icon:rdata.status?1:2},5000); },'json'); } }); } else { //关闭SSL layer.open({ type:1, closeBtn: 1, title:"关闭SSL证书", area: ['480px','280px'], btn: ["确定","取消"], shadeClose: true, content: '
\
\
关闭SSL极易被抓包攻击导致账号密码泄露,请勿关闭
\
\
\
请手动输入【我要关闭】,完成验证
\ \
\
', yes: function(index){ var val = $('#prompt_input_box').val(); if (val != '我要关闭'){ layer.msg("关闭SSL失败!"); return; } $.post('/setting/close_panel_ssl',{}, function(rdata){ var to_http = window.location.href.replace('https','http'); showMsg(rdata.msg,function(){ if (rdata.status){ window.location.href = to_http; } },{icon:rdata.status?1:2},5000); },'json'); } }); } }); /** op **/ // VIP -- start function setVipInfo(){ layer.open({ type: 1, area: "400px", title: 'VIP登录', closeBtn: 1, shift: 5, btn:["登录","关闭"], shadeClose: false, content: "
\
\ 用户名\
\
\
\ 密码\
\
\
", yes:function(index){ var pdata = {}; pdata['username'] = $('input[name="username"]').val(); pdata['password'] = $('input[name="password"]').val(); if (pdata['username'] == ''){ layer.msg('用户名不能为空!', {icon:2}); return false; } if (pdata['password'] == ''){ layer.msg('密码不能为空!', {icon:2}); return false; } $.post('/vip/login',{'username':pdata['username'], 'password':pdata['password']},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){ layer.close(index); } },{icon:rdata.status?1:2},2000); },'json'); }, }); } // VIP -- end //关闭面板 function closePanel(){ layer.confirm('关闭面板会导致您无法访问面板 ,您真的要关闭Linux面板吗?',{title:'关闭面板',closeBtn:2,icon:13,cancel:function(){ $("#closePl").prop("checked",false); }}, function() { $.post('/setting/close_panel','',function(rdata){ layer.msg(rdata.msg,{icon:rdata.status?1:2}); setTimeout(function(){ window.location.reload(); },1000); },'json'); },function(){ $("#closePl").prop("checked",false); }); } //开发模式 function debugMode(){ var loadT = layer.msg('正在发送请求,请稍候...', { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/setting/open_debug', {}, function (rdata) { layer.close(loadT); showMsg(rdata.msg, function(){ window.location.reload(); } ,{icon:rdata.status?1:2}, 1000); },'json'); } function modifyAuthPath() { var auth_path = $("#admin_path").val(); layer.open({ type: 1, area: "500px", title: "修改安全入口", closeBtn: 1, shift: 5, btn:['提交','关闭', '随机生成'], shadeClose: false, content: '
\
\ 入口地址\
\ \
\
\
', yes:function(index){ var auth_path = $("input[name='auth_path_set']").val(); if (auth_path == '/' || auth_path == ''){ layer.confirm('警告,关闭安全入口等于直接暴露你的后台地址在外网,十分危险, 您真的要这样更改吗?',{title:'安全入口修改',closeBtn:1,icon:13, cancel:function(){ }}, function() { var loadT = layer.msg(lan.config.config_save, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/setting/set_admin_path', { admin_path: auth_path }, function (rdata) { showMsg(rdata.msg, function(){ layer.close(index); layer.close(loadT); location.reload(); },{ icon: rdata.status ? 1 : 2 }, 2000); },'json'); }); return; } else { var loadT = layer.msg(lan.config.config_save, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/setting/set_admin_path', { admin_path: auth_path }, function (rdata) { showMsg(rdata.msg, function(){ layer.close(index); layer.close(loadT); location.reload(); },{ icon: rdata.status ? 1 : 2 }, 2000); },'json'); } }, btn3:function(){ var rand_str = getRandomString(8); $("input[name='auth_path_set']").val('/'+rand_str); return false; } }); } function setPassword() { layer.open({ type: 1, area: ["350px",'auto'], title: '修改密码', closeBtn: 1, shift: 5, shadeClose: false, btn:["修改","关闭","随机"], content: "
\
\ 密码\
\
\
\ 重复\
\
\
", yes:function(){ var p1 = $("#p1").val(); var p2 = $("#p2").val(); if(p1 == "" || p1.length < 8) { layer.msg('面板密码不能少于8位!', {icon: 2}); return } //准备弱口令匹配元素 var checks = ['admin888','123123123','12345678','45678910','87654321','asdfghjkl','password','qwerqwer']; pchecks = 'abcdefghijklmnopqrstuvwxyz1234567890'; for(var i=0;i\
用户名\
\
\
\ 重复\
\
\ ", yes: function(){ p1 = $("#p1").val(); p2 = $("#p2").val(); if(p1 == "" || p1.length < 3) { layer.msg('用户名长度不能少于3位', {icon: 2}); return; } if(p1 != p2) { layer.msg('两次输入的用户名不一致', {icon: 2}); return; } $.post("/setting/set_name", "name1=" + encodeURIComponent(p1) + "&name2=" + encodeURIComponent(p2), function(b) { if(b.status) { layer.closeAll(); layer.msg(b.msg, {icon: 1}); $("input[name='username_']").val(p1) } else { layer.msg(b.msg, {icon: 2}); } },'json'); return }, btn3:function(){ var pwd = randomStrPwd(12); $("#p1").val(pwd); $("#p2").val(pwd); layer.msg('请在修改前记录好您的用户名!',{time:2000}); return false; } }) } function setTimezone(){ layer.open({ type: 1, area: ["400px","200px"], title: '设置服务器时区', closeBtn: 1, shift: 5, shadeClose: false, btn:["确定","取消","同步"], content: "
\
\ 时区\
\ \
\
\
", success:function(){ var tbody = ''; $.post('/setting/get_timezone_list', {}, function (data) { var rdata = data['data']; for (var i = 0; i < rdata.length; i++) { if (rdata[i] == 'Asia/Shanghai'){ tbody += ''; } else { tbody += ''; } } $('select[name="timezone"]').append(tbody); },'json'); }, yes:function(index){ var loadT = layer.msg("正在设置时区...", { icon: 16, time: 0, shade: [0.3, '#000'] }); var timezone = $('select[name="timezone"]').val(); $.post('/setting/set_timezone', { timezone: timezone }, function (rdata) { showMsg(rdata.msg, function(){ layer.close(index); layer.close(loadT); location.reload(); },{ icon: rdata.status ? 1 : 2 }, 2000); },'json'); }, btn3:function(){ var loadT = layer.msg('正在同步时间...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/setting/sync_date','',function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:2}); setTimeout(function(){window.location.reload();},1500); },'json'); } }) } function setIPv6() { var loadT = layer.msg('正在配置,请稍候...', { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/setting/set_ipv6_status', {}, function (rdata) { layer.close(loadT); layer.msg(rdata.msg, {icon:rdata.status?1:2}); setTimeout(function(){window.location.reload();},5000); },'json'); } //设置面板SSL function setPanelSSL(){ var status = $("#sshswitch").prop("checked")==true?1:0; var msg = $("#panelSSL").attr('checked')?'关闭SSL后,必需使用http协议访问面板,继续吗?':'危险!此功能不懂别开启!\
  • 必须要用到且了解此功能才决定自己是否要开启!
  • \
  • 面板SSL是自签证书,不被浏览器信任,显示不安全是正常现象
  • \
  • 开启后导致面板不能访问,可以点击下面链接了解解决方法
  • \

    \ \

    '; layer.confirm(msg,{title:'设置面板SSL',closeBtn:1,icon:3,area:'550px',cancel:function(){ $("#panelSSL").prop("checked", status == 0?false:true); }},function(){ if(window.location.protocol.indexOf('https') == -1){ if(!$("#checkSSL").prop('checked')){ layer.msg(lan.config.ssl_ps,{icon:2}); return false; } } var loadT = layer.msg('正在安装并设置SSL组件,这需要几分钟时间...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/setting/set_panel_ssl','',function(rdata){ layer.close(loadT); layer.msg(rdata.msg,{icon:rdata.status?1:5}); if(rdata.status === true){ $.post('/system/restart','',function (rdata) { layer.close(loadT); layer.msg(rdata.msg); setTimeout(function(){ window.location.href = ((window.location.protocol.indexOf('https') != -1)?'http://':'https://') + window.location.host + window.location.pathname; },3000); },'json'); } },'json'); },function(){ if(status == 0){ $("#panelSSL").prop("checked",false); }else{ $("#panelSSL").prop("checked",true); } }); } function setNotifyTgbot(obj){ var enable = $(obj).prop("checked"); $.post('/setting/set_notify_tgbot_enable', {'enable':enable},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){} } ,{icon:rdata.status?1:2}, 1000); },'json'); } function setNotifyEmail(obj){ var enable = $(obj).prop("checked"); $.post('/setting/set_notify_email_enable', {'enable':enable},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){} } ,{icon:rdata.status?1:2}, 1000); },'json'); } function getTgbot(){ var loadT = layer.msg('正在获取TgBot信息...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/setting/get_notify_tgbot',{},function(data){ layer.close(loadT); var app_token = ''; var chat_id = ''; if (data.status){ if (data['data']['tgbot'].length != 0){ app_token = data['data']['tgbot']['app_token']; chat_id = data['data']['tgbot']['chat_id']; } } layer.open({ type: 1, area: "500px", title: 'TgBot配置', closeBtn: 1, shift: 5, btn:["确定","关闭","验证"], shadeClose: false, content: "
    \
    \ APP_TOKEN\
    \
    \
    \ CHAT_ID\
    \
    \
    ", yes:function(index){ var pdata = {}; pdata['app_token'] = $('input[name="app_token"]').val(); pdata['chat_id'] = $('input[name="chat_id"]').val(); if (pdata['app_token'] == ''){ layer.msg('app_token不能为空!', {icon:2}); return false; } if (pdata['chat_id'] == ''){ layer.msg('chat_id不能为空!', {icon:2}); return false; } $.post('/setting/set_notify_tgbot',{'tag':'tgbot', 'data':JSON.stringify(pdata)},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){ layer.close(index); } },{icon:rdata.status?1:2},2000); }); }, btn3:function(index){ var pdata = {}; pdata['app_token'] = $('input[name="app_token"]').val(); pdata['chat_id'] = $('input[name="chat_id"]').val(); if (pdata['app_token'] == ''){ layer.msg('app_token不能为空!', {icon:2}); return false; } if (pdata['chat_id'] == ''){ layer.msg('chat_id不能为空!', {icon:2}); return false; } $.post('/setting/set_notify_tgbot_test',{'tag':'tgbot', 'data':JSON.stringify(pdata)},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){ layer.close(index); } },{icon:rdata.status?1:2},2000); }); return false; } }); }); } function getEmailCfg(){ var loadT = layer.msg('正在获取邮件配置信息...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/setting/get_notify_email',{},function(data){ layer.close(loadT); var smtp_host = 'smtp.163.com'; var smtp_port = '25'; var username = 'admin'; var password = ''; var to_mail_addr = ''; var smtp_ssl_no = 'checked'; var smtp_ssl_yes = ''; if (data.status){ if (typeof(data['data']['email']) !='undefined'){ smtp_host = data['data']['email']['smtp_host']; smtp_port = data['data']['email']['smtp_port']; username = data['data']['email']['username']; password = data['data']['email']['password']; to_mail_addr = data['data']['email']['to_mail_addr']; var smtp_ssl = data['data']['email']['smtp_ssl']; if (smtp_ssl == 'ssl'){ smtp_ssl_no = ''; smtp_ssl_yes = 'checked'; } } } layer.open({ type: 1, area: "500px", title: '邮件配置', closeBtn: 1, shift: 5, btn:["确定","关闭","验证"], shadeClose: false, content: "
    \
    \ SMTP服务器\
    \
    \
    \ SMTP安全\
    \ \ \
    \
    \
    \ SMTP端口\
    \
    \
    \ 用户名\
    \
    \
    \ 授权码\
    \
    \
    \ 发送地址\
    \
    \
    \ 验证测试\
    \
    \
    \
    ", yes:function(index){ var pdata = {}; pdata['smtp_host'] = $('input[name="smtp_host"]').val(); pdata['smtp_port'] = $('input[name="smtp_port"]').val(); pdata['smtp_ssl'] = $('input[name="smtp_ssl"]:checked').val(); pdata['username'] = $('input[name="username"]').val(); pdata['password'] = $('input[name="password"]').val(); pdata['to_mail_addr'] = $('input[name="to_mail_addr"]').val(); if (pdata['smtp_host'] == ''){ layer.msg('SMTP服务器不能为空!', {icon:2}); return false; } if (pdata['smtp_port'] == ''){ layer.msg('SMTP端口不能为空!', {icon:2}); return false; } if (pdata['username'] == ''){ layer.msg('用户名不能为空!', {icon:2}); return false; } if (pdata['password'] == ''){ layer.msg('授权码不能为空!', {icon:2}); return false; } if (pdata['to_mail_addr'] == ''){ layer.msg('发送地址不能为空!', {icon:2}); return false; } $.post('/setting/set_notify_email',{'tag':'email', 'data':JSON.stringify(pdata)},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){ layer.close(index); } },{icon:rdata.status?1:2},2000); },'json'); }, btn3:function(index){ var pdata = {}; pdata['smtp_host'] = $('input[name="smtp_host"]').val(); pdata['smtp_port'] = $('input[name="smtp_port"]').val(); pdata['smtp_ssl'] = $('input[name="smtp_ssl"]:checked').val(); pdata['username'] = $('input[name="username"]').val(); pdata['password'] = $('input[name="password"]').val(); pdata['to_mail_addr'] = $('input[name="to_mail_addr"]').val(); pdata['mail_test'] = $('textarea[name="mail_test"]').val(); if (pdata['smtp_host'] == ''){ layer.msg('SMTP服务器不能为空!', {icon:2}); return false; } if (pdata['smtp_port'] == ''){ layer.msg('SMTP端口不能为空!', {icon:2}); return false; } if (pdata['username'] == ''){ layer.msg('用户名不能为空!', {icon:2}); return false; } if (pdata['password'] == ''){ layer.msg('授权码不能为空!', {icon:2}); return false; } if (pdata['to_mail_addr'] == ''){ layer.msg('发送地址不能为空!', {icon:2}); return false; } if (pdata['mail_test'] == ''){ layer.msg('验证测试不能为空!', {icon:2}); return false; } $.post('/setting/set_notify_email_test',{'tag':'email', 'data':JSON.stringify(pdata)},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){ layer.close(index); } },{icon:rdata.status?1:2},2000); },'json'); return false; } }); },'json'); } function getPanelSSL(){ var loadT = layer.msg('正在获取证书信息...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/setting/get_panel_ssl',{},function(cert){ layer.close(loadT); // console.log(cert); var choose = cert['choose']; var choose_local = ''; var choose_nginx = ''; if (choose == 'local'){ cert = cert['local']; choose_local = 'selected="selected"'; } else if (choose == 'nginx') { cert = cert['nginx']; choose_nginx = 'selected="selected"'; } else { cert = cert['local']; } var cert_data = ''; //
    \ // 强制HTTPS:\ // \ // \ // \ // \ //
    \ if (cert['info']){ cert_data = "
    \
    证书品牌:\ "+cert['info']['issuer']+"
    \
    到期时间:\ 剩余"+cert['info']['endtime']+"天到期
    \
    \
    \
    认证域名:\ "+cert['info']['subject']+"
    \
    "; } // \ // \ var certBody = '
    \
    \ '+cert_data+'\
    \
    密钥(KEY)
    \ \
    \
    证书(PEM格式)
    \ \
    \
    \
    \ \ \ \
    \
    \ \
    ' layer.open({ type: 1, area: "600px", title: '自定义面板证书', closeBtn: 1, shift: 5, shadeClose: false, content:certBody, success:function(layero, layer_id){ //保存SSL $('.save-panel-ssl').click(function(){ var data = { privateKey:$("#key").val(), certPem:$("#csr").val() } layer.confirm('选择保存面板SSL方式?', { title:'提示', shade:0.001, btn: ['本地SSL', '取消'],//'OpenResty' btn3:function(){ data['choose'] = 'nginx'; var loadT = layer.msg('正在安装并设置SSL组件,这需要几分钟时间...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/setting/save_panel_ssl',data,function(rdata){ layer.close(loadT); if(rdata.status){ layer.closeAll(); } layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); }, }, function(index) { data['choose'] = 'local'; var loadT = layer.msg('正在安装并设置SSL组件,这需要几分钟时间...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/setting/save_panel_ssl',data,function(rdata){ layer.close(loadT); if(rdata.status){ layer.closeAll(); } layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); }, function(index) { layer.close(index); }); }); //删除SSL $('.del-panel-ssl').click(function(){ layer.confirm('选择删除面板SSL方式?', { title:'提示', shade:0.001, btn: ['本地SSL', '取消'],//, 'OpenResty' btn3:function(){ var data = {}; data['choose'] = 'nginx'; var loadT = layer.msg('正在删除面板SSL【nginx】...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/setting/del_panel_ssl',data,function(rdata){ layer.close(loadT); if(rdata.status){ layer.closeAll(); } layer.msg(rdata.msg,{icon:rdata.status?1:2}); },'json'); }, }, function(index) { var data = {}; data['choose'] = 'local'; var loadT = layer.msg('正在删除面板SSL【本地】...',{icon:16,time:0,shade: [0.3, '#000']}); $.post('/setting/del_panel_ssl',data,function(rdata){ console.log(rdata); layer.close(loadT); showMsg(rdata.msg, function(){ if(rdata.status){ location.href = rdata.data; } },{icon:rdata.status?1:2},3000); },'json'); }, function(index) { layer.close(index); }); }); // // 设置面板SSL的Http // $('.set_panel_http_to_https').click(function(){ // var https = $('#toHttps').prop('checked'); // $.post('/config/set_panel_http_to_https',{'https':https},function(rdata){ // layer.close(loadT); // if(rdata.status){ // layer.closeAll(); // } // layer.msg(rdata.msg,{icon:rdata.status?1:2}); // },'json'); // }); // //申请Lets证书 // $('.apply-lets-ssl').click(function(){ // showSpeedWindow('正在申请...', 'site.get_let_logs', function(layers,index){ // $.post('/config/apply_panel_acme_ssl',{},function(rdata){ // layer.close(loadT); // if(rdata.status){ // layer.close(index); // var tdata = rdata['data']; // $('.ssl_issue').text(tdata['info']['issuer']); // $('.ssl_endtime').text("剩余"+tdata['info']['endtime']+"天到期"); // $('.ssl_subject').text(tdata['info']['subject']); // $('textarea[name="key"]').val(tdata['info']['privateKey']); // $('textarea[name="csr"]').val(tdata['info']['certPem']); // } // layer.msg(rdata.msg,{icon:rdata.status?1:2}); // },'json'); // }); // }); } }); },'json'); } function removeTempAccess(id){ $.post('/setting/remove_temp_login', {id:id}, function(rdata){ showMsg(rdata.msg, function(){ setTempAccessReq(); },{ icon: rdata.status ? 1 : 2 }, 2000); },'json'); } function getTempAccessLogsReq(id){ $.post('/setting/get_temp_login_logs', {id:id}, function(rdata){ var tbody = ''; for (var i = 0; i < rdata.data.length; i++) { tbody += ''; tbody += '' + (rdata.data[i]['type']) +''; tbody += '' + rdata.data[i]['addtime'] +''; tbody += ''+ rdata.data[i]['log'] +''; tbody += ''; } $('#logs_list').html(tbody); },'json'); } function getTempAccessLogs(id){ layer.open({ area: ['700px', '250px'], title: '临时授权管理', closeBtn:1, shift: 0, type: 1, content: "
    \ \
    \ \ \ \ \ \
    操作类型操作时间日志
    \
    \
    ", success:function(){ getTempAccessLogsReq(id); $('.refresh_log').click(function(){ getTempAccessLogsReq(id); }); } }); } function setTempAccessReq(page){ if (typeof(page) == 'undefined'){ page = 1; } $.post('/setting/get_temp_login', {page:page}, function(rdata){ console.log(rdata); if ( typeof(rdata.status) !='undefined' && !rdata.status){ showMsg(rdata.msg,function(){ layer.closeAll(); },{icon:2}, 2000); return; } var tbody = ''; for (var i = 0; i < rdata.data.length; i++) { tbody += ''; tbody += '' + (rdata.data[i]['login_addr']||'未登陆') +''; tbody += ''; switch (parseInt(rdata.data[i]['state'])) { case 0: tbody += '待使用'; break; case 1: tbody += '已使用'; break; case -1: tbody += '已过期'; break; } tbody += ''; tbody += '' + (getLocalTime(rdata.data[i]['login_time'])||'未登陆') +''; tbody += '' + getLocalTime(rdata.data[i]['expire']) +''; tbody += ''; if (rdata.data[i]['state'] == '1' ){ tbody += '操作日志'; } else{ tbody += '删除'; } tbody += ''; tbody += ''; } $('#temp_login_view_tbody').html(tbody); $('.temp_login_view_page').html(rdata.page); },'json'); } function setStatusCode(o){ var code = $(o).data('code'); layer.open({ type: 1, area: ['420px', '220px'], title: "设置未认证时的响应状态", closeBtn: 1, shift: 5, btn:['提交','关闭'], shadeClose: false, content: '
    \
    \ 相应状态\
    \ \
    \
    \ \
    ', success:function(){ var msg_list = [ {'code':'0','msg':'默认-安全入口错误提示'}, {'code':'403','msg':'403-拒绝访问'}, {'code':'404','msg':'404-页面不存在'}, {'code':'416','msg':'416-无效的请求'}, {'code':'408','msg':'408-客户端超时'}, {'code':'400','msg':'400-客户端请求错误'}, {'code':'401','msg':'401-未授权访问'}, ]; var tbody = ''; for(i in msg_list){ if (msg_list[i]['code'] == code){ tbody += ''; } else{ tbody += ''; } } $('select[name="status_code"]').append(tbody); }, yes:function(index){ var loadT = layer.msg("正在设置未认证时的响应状态", { icon: 16, time: 0, shade: [0.3, '#000'] }); var status_code = $('select[name="status_code"]').val(); $.post('/setting/set_status_code', { status_code: status_code }, function (rdata) { showMsg(rdata.msg, function(){ layer.close(index); layer.close(loadT); location.reload(); },{ icon: rdata.status ? 1 : 2 }, 2000); },'json'); } }); } function setTempAccess(){ layer.open({ area: ['700px', '380px'], title: '临时授权管理', closeBtn:1, shift: 0, type: 1, content: "
    \ \
    \ \ \ \ \ \ \ \ \ \ \
    登录IP状态登录时间过期时间操作
    \ \
    \
    ", success:function(){ setTempAccessReq(); $('.create_temp_login').click(function(){ layer.confirm('注意1:滥用临时授权可能导致安全风险。
    注意2:请勿在公共场合发布临时授权连接

    即将创建临时授权连接,继续吗?',{ title:'风险提示', closeBtn:1, icon:13, }, function(create_temp_login_layer) { $.post('/setting/set_temp_login', {}, function(rdata){ layer.close(create_temp_login_layer); setTempAccessReq(); layer.open({ area: '570px', title: '创建临时授权', shift: 0, type: 1, content: "
    \
    \ 临时授权地址\
    \ \
    \
    \
    \ \
    ", success:function(){ var temp_link = "".concat(location.origin, "/login?tmp_token=").concat(rdata.token); $('#temp_link').val(temp_link); copyText(temp_link); $('.btn-copy-temp-link').click(function(){ copyText(temp_link); }); } }); },'json'); }); }); } }); } //二步验证 function setAuthBind(){ $.post('/setting/get_auth_secret', {}, function(rdata){ console.log(rdata); var tip = layer.open({ area: ['500px', '355px'], title: '二步验证设置', closeBtn:1, shift: 0, type: 1, content: '
    \
    \ 绑定密钥\
    \ \ \
    \
    \
    \ 二维码\
    \
    \ \
    ', success:function(layero,index){ $('input[name="secret"]').val(rdata.data['secret']); $('.qrcode').qrcode({ text: rdata.data['url']}); $('.reset_secret').click(function(){ layer.confirm('您确定要重置当前密钥吗?
    重置密钥后,已关联密钥产品,将失效,请重新添加新密钥至产品。',{title:'重置密钥',closeBtn:2,icon:13,cancel:function(){ }}, function() { $.post('/setting/get_auth_secret', {'reset':"1"},function(rdata){ showMsg("接口密钥已生成,重置密钥后,已关联密钥产品,将失效,请重新添加新密钥至产品。", function(){ $('input[name="secret"]').val(rdata.data['secret']); $('.qrcode').html('').qrcode({ text: rdata.data['url']}); } ,{icon:1}, 2000); },'json'); }); }); }, }); },'json'); } function setAuthSecretApi(){ var cfg_panel_auth = $('#cfg_panel_auth').prop("checked"); $.post('/setting/set_auth_secret', {'op_type':"2"},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.data == 1){ setAuthBind(); } } ,{icon:rdata.status?1:2}, 1000); },'json'); } function setBasicAuthTip(callback){ var tip = layer.open({ area: ['500px', '385px'], title: '开启BasicAuth认证提示', closeBtn:0, shift: 0, type: 1, content: '
    \
    \

    风险操作!此功能不懂请勿开启!

    \
    \ \
    \ \ \
    \
    ', btn:["确定","取消"], yes:function(l,index){ is_agree = $('#agreement_more').prop("checked"); if (is_agree){ layer.close(tip); callback(); } return is_agree; }, btn2: function(index, layero){ $('#cfg_basic_auth').prop("checked", false); } }); } function setBasicAuth(){ var basic_auth = $('#cfg_basic_auth').prop("checked"); if (!basic_auth){ setBasicAuthTip(function(){ var tip = layer.open({ area: ['500px', '385px'], title: '配置BasicAuth认证', closeBtn:1, shift: 0, type: 1, content: '
    \
    \ 用户名\
    \
    \
    \ 密码\
    \
    \
    \ \
    \
    \ \
    ', success:function(){ $('.save_auth_cfg').click(function(){ var basic_user = $('input[name="basic_user"]').val(); var basic_pwd = $('input[name="basic_pwd"]').val(); $.post('/setting/set_basic_auth', {'basic_user':basic_user,'basic_pwd':basic_pwd},function(rdata){ showMsg(rdata.msg, function(){ window.location.reload(); } ,{icon:rdata.status?1:2}, 2000); },'json'); }); }, cancel:function(){ $('#cfg_basic_auth').prop("checked", false); }, }); }); } else { layer.confirm('关闭BasicAuth认证后,面板登录将不再验证BasicAuth基础认证,这将会导致面板安全性下降,继续操作!', {btn: ['确定', '取消'], title: "是否关闭BasicAuth认证?", icon:13}, function (index) { var basic_user = ''; var basic_pwd = ''; $.post('/setting/set_basic_auth', {'is_open':'false'},function(rdata){ showMsg(rdata.msg, function(){ layer.close(index); window.location.reload(); } ,{icon:rdata.status?1:2}, 2000); },'json'); },function(){ $('#cfg_basic_auth').prop("checked", true); }); } } function showPanelApi(){ $.post('/setting/get_panel_token', '', function(rdata){ var tip = layer.open({ area: ['500px', '355px'], title: '配置面板API', closeBtn:1, shift: 0, type: 1, content: '
    \
    \ 接口密钥\
    \ \ \
    \
    \
    \ IP白名单
    (每行1个)
    \
    \
    \
    \ \
    \
    \ \
    ', success:function(layero,index){ $('input[name="token"]').val(rdata.data.token); $('textarea[name="api_limit_addr"]').val(rdata.data.limit_addr); $('.reset_token').click(function(){ layer.confirm('您确定要重置当前密钥吗?
    重置密钥后,已关联密钥产品,将失效,请重新添加新密钥至产品。',{title:'重置密钥',closeBtn:2,icon:13,cancel:function(){ }}, function() { $.post('/config/set_panel_token', {'op_type':"1"},function(rdata){ showMsg("接口密钥已生成,重置密钥后,已关联密钥产品,将失效,请重新添加新密钥至产品。", function(){ $('input[name="token"]').val(rdata.data); } ,{icon:1}, 2000); },'json'); }); }); $('.save_api').click(function(){ var limit_addr = $('textarea[name="api_limit_addr"]').val(); $.post('/config/set_panel_token', {'op_type':"3",'limit_addr':limit_addr},function(rdata){ showMsg(rdata.msg, function(){ } ,{icon:rdata.status?1:2}, 2000); },'json'); }); }, }); },'json'); } function setPanelApi(){ var cfg_panel_api = $('#cfg_panel_api').prop("checked"); $.post('/setting/set_panel_api', {},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){ addApp(); } } ,{icon:rdata.status?1:2}, 1000); },'json'); } function deleteApp(id){ layer.confirm('您确定要删除吗?',{title:'删除应用',closeBtn:2,icon:13,cancel:function(){}}, function() { $.post('/setting/delete_app', {'id':id},function(rdata){ layer.msg(rdata.msg,{icon:rdata.status?1:2}); if (rdata.status){ getAppList(); } },'json'); }); } function toggleAppstatus(id){ $.post('/setting/toggle_app_status', {id:id}, function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){ getAppList(); } } ,{icon:rdata.status?1:2}, 2000); },'json'); } function getAppList(page) { if (typeof(page) == 'undefined'){ page = 1; } $.post('/setting/get_app_list', {page:page}, function(rdata){ var tbody = ''; for (var i = 0; i < rdata.data.length; i++) { var row = rdata.data[i]; tbody += ''; tbody += '' + row['app_id'] +''; tbody += '' + row['app_secret'] +''; tbody += '' + row['white_list'] +''; if (row['status'] == 1){ tbody += '已开启'; } else { tbody += '已关闭'; } tbody += '' + row['add_time'] +''; tbody += ''; tbody += '删除'; tbody += ''; tbody += ''; } $('#app_list_body tbody').html(tbody); $('#app_list_body .page').html(rdata.page); },'json'); } function addApp(){ layer.open({ area: '570px', title: '添加应用', shift: 0, type: 1, content: '
    \
    \ 应用ID\
    \ \ \
    \
    \
    \ 应用密钥\
    \ \ \
    \
    \
    \ IP白名单
    (每行1个)
    \
    \
    \
    \ \
    \
    \ \
    ', success:function(obj,cur_layer){ $('input[name="app_id"]').val(getRandomString(10)); $('input[name="app_secret"]').val(getRandomString(20)); $('.app_id').click(function(){ $('input[name="app_id"]').val(getRandomString(10)); }); $('.app_secret').click(function(){ $('input[name="app_secret"]').val(getRandomString(20)); }); $('.save_app_data').click(function(){ var app_id = $('input[name="app_id"]').val(); var app_secret = $('input[name="app_secret"]').val(); var limit_addr = $('textarea[name="api_limit_addr"]').val(); $.post('/setting/add_app', {'app_id':app_id,'app_secret':app_secret,'limit_addr':limit_addr},function(rdata){ showMsg(rdata.msg, function(){ if (rdata.status){ getAppList(); layer.close(cur_layer); } } ,{icon:rdata.status?1:2}, 2000); },'json'); }); } }); } function appPage(){ layer.open({ area: ['900px', '380px'], title: 'APP应用管理', closeBtn:1, shift: 0, type: 1, content: "
    \ \
    \ \ \ \ \ \ \ \ \ \ \ \ \
    应用ID应用密钥白名单状态添加时间操作
    \
    \
    \
    ", success:function(){ getAppList(); $('.app_add').click(function(){ addApp(); }); } }); }