This commit is contained in:
Mr Chen
2024-11-11 00:48:54 +08:00
parent f511b8e44f
commit 111aaa768a
9 changed files with 239 additions and 35 deletions
+152
View File
@@ -1472,3 +1472,155 @@ function setPanelApi(){
} ,{icon:rdata.status?1:2}, 1000);
},'json');
}
function getAppList(page) {
if (typeof(page) == 'undefined'){
page = 1;
}
$.post('/setting/get_app_list', {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 += '<tr>';
tbody += '<td>' + (rdata.data[i]['login_addr']||'未登陆') +'</td>';
tbody += '<td>';
switch (parseInt(rdata.data[i]['state'])) {
case 0:
tbody += '<a style="color:green;">待使用</a>';
break;
case 1:
tbody += '<a style="color:brown;">已使用</a>';
break;
case -1:
tbody += '<a>已过期</a>';
break;
}
tbody += '</td>';
tbody += '<td>' + (getLocalTime(rdata.data[i]['login_time'])||'未登陆') +'</td>';
tbody += '<td>' + getLocalTime(rdata.data[i]['expire']) +'</td>';
tbody += '<td>';
if (rdata.data[i]['state'] == '1' ){
tbody += '<a class="btlink" onclick="getTempAccessLogs(\''+rdata.data[i]['id']+'\')">操作日志</a>';
} else{
tbody += '<a class="btlink" onclick="removeTempAccess(\''+rdata.data[i]['id']+'\')">删除</a>';
}
tbody += '</td>';
tbody += '</tr>';
}
$('#temp_login_view_tbody').html(tbody);
$('.temp_login_view_page').html(rdata.page);
},'json');
}
function addApp(){
var msg = '<span style="color:red">注意1:滥用临时授权可能导致安全风险。</br>注意2:请勿在公共场合发布临时授权连接</span></br>即将创建临时授权连接,继续吗?';
layer.confirm(msg,{title:'风险提示',closeBtn:1,icon:13,}, function(create_layer) {
layer.close(create_layer);
layer.open({
area: '570px',
title: '添加应用',
shift: 0,
type: 1,
content: '<div class="bt-form pd20">\
<div class="line">\
<span class="tname">应用ID</span>\
<div class="info-r">\
<input class="bt-input-text mr5" name="app_id" type="text" style="width: 310px;" disabled>\
<button class="btn btn-success btn-xs app_id" style="margin-left: -50px;">重置</button>\
</div>\
</div>\
<div class="line">\
<span class="tname">应用密钥</span>\
<div class="info-r">\
<input class="bt-input-text mr5" name="app_secret" type="text" style="width: 310px;" disabled>\
<button class="btn btn-success btn-xs app_secret" style="margin-left: -50px;">重置</button>\
</div>\
</div>\
<div class="line">\
<span class="tname" style="width: 90px; overflow: initial; height: 20px; line-height: 20px;">IP白名单<br/>(每行1个)</span>\
<div class="info-r"><textarea class="bt-input-text" name="api_limit_addr" style="width: 310px; height: 80px; line-height: 20px; padding: 5px 8px;"></textarea></div>\
</div>\
<div class="line">\
<span class="tname"></span>\
<div class="info-r"><button class="btn btn-success btn-sm save_app_data">保存配置</button></div>\
</div>\
<ul class="help-info-text c7">\
<li>开启API后,必需在IP白名单列表中的IP才能访问面板API接口</li>\
<li style="color: red;">请谨慎在生产环境开启,这可能增加服务器安全风险;</li>\
</ul>\
</div>',
success:function(){
$('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(){} ,{icon:rdata.status?1:2}, 2000);
},'json');
});
}
});
});
}
function appPage(){
layer.open({
area: ['700px', '380px'],
title: 'APP应用管理',
closeBtn:1,
shift: 0,
type: 1,
content: "<div class='login_view_table pd20'>\
<button class='btn btn-success btn-sm app_add'>添加</button>\
<div class='divtable mt10'>\
<table class='table table-hover'>\
<thead>\
<tr>\
<th>登录IP</th>\
<th>状态</th><th>登录时间</th>\
<th>过期时间</th>\
<th style='text-align:right;'>操作</th>\
</tr>\
</thead>\
<tbody id='temp_login_view_tbody'></tbody>\
</table>\
<div class='temp_login_view_page page'></div>\
</div>\
</div>",
success:function(){
getAppList();
$('.app_add').click(function(){
addApp();
});
}
});
}