mirror of
https://github.com/netcccyun/dnsmgr.git
synced 2026-05-02 11:56:27 +02:00
feat(account): 添加用户级别权限控制和Cloudflare Tunnels功能 - 在account页面添加userLevel变量用于权限判断 - 修改操作列显示逻辑,仅当用户级别为2且类型为cloudflare时显示Tunnels链接 - 统一用户级别检测方式,从request()->user改为$user变量 feat(domain): 增强Cloudflare功能并优化权限控制 - 修复模板中用户级别变量引用错误,统一使用$user['level'] - 为高级用户(级别2)添加Cloudflare增强功能按钮 - 增加对Cloudflare隧道和主机名管理的支持 - 添加行类型安全检查以防止空值错误 fix(record): 修复用户类型权限检测逻辑 - 修正解析记录页面用户类型检测条件 - 统一用户权限检查变量使用标准$user语法 - 确保Cloudflare增强功能正确基于用户级别显示 ```
105 lines
3.1 KiB
HTML
105 lines
3.1 KiB
HTML
{extend name="common/layout" /}
|
|
{block name="title"}域名账户{/block}
|
|
{block name="main"}
|
|
<div class="row">
|
|
<div class="col-xs-12 center-block" style="float: none;">
|
|
<div class="panel panel-default panel-intro">
|
|
<div class="panel-body">
|
|
|
|
<form onsubmit="return searchSubmit()" method="GET" class="form-inline" id="searchToolbar">
|
|
<div class="form-group">
|
|
<label>搜索</label>
|
|
<input type="text" class="form-control" name="kw" placeholder="账户名称或备注">
|
|
</div>
|
|
<button type="submit" class="btn btn-primary"><i class="fa fa-search"></i> 搜索</button>
|
|
<a href="javascript:searchClear()" class="btn btn-default" title="刷新域名账户列表"><i class="fa fa-refresh"></i> 刷新</a>
|
|
<a href="/account/add" class="btn btn-success"><i class="fa fa-plus"></i> 添加</a>
|
|
</form>
|
|
|
|
<table id="listTable">
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{/block}
|
|
{block name="script"}
|
|
<script src="/static/js/layer/layer.js"></script>
|
|
<script src="/static/js/bootstrap-table-1.21.4.min.js"></script>
|
|
<script src="/static/js/bootstrap-table-page-jump-to-1.21.4.min.js"></script>
|
|
<script src="/static/js/custom.js"></script>
|
|
<script>
|
|
var userLevel = "{$user['level']|default=''}";
|
|
$(document).ready(function(){
|
|
updateToolbar();
|
|
const defaultPageSize = 15;
|
|
const pageNumber = typeof window.$_GET['pageNumber'] != 'undefined' ? parseInt(window.$_GET['pageNumber']) : 1;
|
|
const pageSize = typeof window.$_GET['pageSize'] != 'undefined' ? parseInt(window.$_GET['pageSize']) : defaultPageSize;
|
|
|
|
$("#listTable").bootstrapTable({
|
|
url: '/account/data',
|
|
pageNumber: pageNumber,
|
|
pageSize: pageSize,
|
|
classes: 'table table-striped table-hover table-bordered',
|
|
columns: [
|
|
{
|
|
field: 'id',
|
|
title: 'ID'
|
|
},
|
|
{
|
|
field: 'typename',
|
|
title: '所属平台',
|
|
formatter: function(value, row, index) {
|
|
return '<img src="/static/images/'+row.icon+'" class="type-logo"></img>'+value;
|
|
}
|
|
},
|
|
{
|
|
field: 'name',
|
|
title: '账户名称'
|
|
},
|
|
{
|
|
field: 'remark',
|
|
title: '备注'
|
|
},
|
|
{
|
|
field: 'addtime',
|
|
title: '添加时间'
|
|
},
|
|
{
|
|
field: 'action',
|
|
title: '操作',
|
|
formatter: function(value, row, index) {
|
|
var html = '<a href="/account/edit?id='+row.id+'" class="btn btn-info btn-xs">编辑</a> <a href="javascript:delItem('+row.id+')" class="btn btn-danger btn-xs">删除</a> <a href="/domain?aid='+row.id+'" class="btn btn-default btn-xs">域名</a>';
|
|
var rowType = String(row.type || '').toLowerCase();
|
|
if(userLevel == '2' && rowType === 'cloudflare'){
|
|
html += ' <a href="/cloudflare/tunnels/'+row.id+'" class="btn btn-primary btn-xs">Tunnels</a>';
|
|
}
|
|
return html;
|
|
}
|
|
},
|
|
],
|
|
})
|
|
})
|
|
function delItem(id) {
|
|
layer.confirm('确定要删除此域名账户吗?', {title: '提示', icon: 0}, function(){
|
|
var ii = layer.load(2);
|
|
$.ajax({
|
|
type : 'POST',
|
|
url : '/account/del',
|
|
data : {id: id},
|
|
dataType : 'json',
|
|
success : function(data) {
|
|
layer.close(ii);
|
|
if(data.code == 0){
|
|
layer.closeAll();
|
|
searchRefresh();
|
|
}else{
|
|
layer.alert(data.msg, {icon: 2});
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
</script>
|
|
{/block}
|