mirror of https://github.com/jumpserver/jumpserver
255 lines
16 KiB
HTML
255 lines
16 KiB
HTML
{% extends 'base.html' %}
|
|
{% load mytags %}
|
|
{% block content %}
|
|
{% include 'nav_cat_bar.html' %}
|
|
|
|
<div class="wrapper wrapper-content animated fadeInRight">
|
|
<div class="row">
|
|
<div class="col-lg-10">
|
|
<div class="ibox float-e-margins">
|
|
<div class="ibox-title">
|
|
<h5> Sudo授权列表 </h5>
|
|
<div class="ibox-tools">
|
|
<a class="collapse-link">
|
|
<i class="fa fa-chevron-up"></i>
|
|
</a>
|
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
|
<i class="fa fa-wrench"></i>
|
|
</a>
|
|
<ul class="dropdown-menu dropdown-user">
|
|
<li><a href="#">未启用 1</a>
|
|
</li>
|
|
<li><a href="#">未启用 2</a>
|
|
</li>
|
|
</ul>
|
|
<a class="close-link">
|
|
<i class="fa fa-times"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ibox-content">
|
|
<div class="" style="margin-left: 15px;">
|
|
<a target="_blank" href="/jperm/cmd_add/" class="btn btn-sm btn-primary "> 添加命令组 </a>
|
|
<a target="_blank" href="/jperm/cmd_list/" class="btn btn-sm btn-warning "> 查看命令组 </a>
|
|
<a target="_blank" href="/jperm/sudo_add/" class="btn btn-sm btn-danger "> Sudo授权添加 </a>
|
|
</div>
|
|
|
|
<div class="panel blank-panel">
|
|
<div class="panel-heading">
|
|
<div class="panel-options">
|
|
<ul class="nav nav-tabs">
|
|
<li id="tab1" class="active"><a data-toggle="tab" href="#tab-1">查看授权</a></li>
|
|
{# <li id="tab2" class=""><a data-toggle="tab" href="#tab-2">用户授权详情</a></li>#}
|
|
<li style="float: right">
|
|
{# <form method="get" action="" class="pull-right mail-search">#}
|
|
{# <div class="input-group">#}
|
|
{# <input type="text" class="form-control input-sm" id="search_input" name="search" placeholder="Search">#}
|
|
{# <div class="input-group-btn">#}
|
|
{# <button id='search_btn' type="button" class="btn btn-sm btn-primary">#}
|
|
{# Search#}
|
|
{# </button>#}
|
|
{# </div>#}
|
|
{# </div>#}
|
|
{# </form>#}
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel-body">
|
|
|
|
<div class="tab-content">
|
|
<div id="tab-1" class="tab-pane active">
|
|
<table class="table table-striped table-bordered table-hover " id="editable" >
|
|
<thead>
|
|
<tr>
|
|
<th class="text-center">授权名</th>
|
|
<th class="text-center">UserRunAs</th>
|
|
<th class="text-center">用户组</th>
|
|
<th class="text-center">主机组</th>
|
|
<th class="text-center">命令组</th>
|
|
<th class="text-center">操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="perm_list">
|
|
{% for sudo_perm in contacts1.object_list %}
|
|
<tr class="gradeX">
|
|
<td class="text-center"> {{ sudo_perm.name }} </td>
|
|
<td class="text-center"> {{ sudo_perm.user_runas }} </td>
|
|
<td class="text-center">
|
|
{% for user_group in sudo_perm.user_group.all %}
|
|
{{ user_group.name }}
|
|
{% endfor %}
|
|
</td>
|
|
|
|
<td class="text-center">
|
|
{% for asset_group in sudo_perm.asset_group.all %}
|
|
{{ asset_group.name }}
|
|
{% endfor %}
|
|
</td>
|
|
|
|
<td class="text-center">
|
|
{% for cmd_group in sudo_perm.cmd_group.all %}
|
|
{{ cmd_group.name }}
|
|
{% endfor %}
|
|
</td>
|
|
<td class="text-center">
|
|
<a title="[ {{ sudo_perm.name }} 授权详情 ]" href="../sudo_detail/?id={{ sudo_perm.id }}" class="btn btn-xs btn-primary">详情</a>
|
|
<a href="../sudo_edit/?id={{ sudo_perm.id }}" class="btn btn-xs btn-info">编辑</a>
|
|
<a href="../sudo_del/?id={{ sudo_perm.id }}" class="btn btn-xs btn-danger">删除</a>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="dataTables_info" id="editable_info" role="status" aria-live="polite">
|
|
Showing {{ contacts1.start_index }} to {{ contacts1.end_index }} of {{ p1.count }} entries
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
|
|
<ul class="pagination" style="margin-top: 0; float: right">
|
|
{% if contacts1.has_previous %}
|
|
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
|
|
<a href="?page={{ contacts1.previous_page_number }}">Previous</a>
|
|
</li>
|
|
{% else %}
|
|
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
|
|
<a href="#">Previous</a>
|
|
</li>
|
|
{% endif %}
|
|
{% for page in p1.page_range %}
|
|
{% ifequal offset1 page %}
|
|
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
|
|
{% else %}
|
|
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
|
|
{% endifequal %}
|
|
{% endfor %}
|
|
{% if contacts1.has_next %}
|
|
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
|
|
<a href="?page={{ contacts1.next_page_number }}">Next</a>
|
|
</li>
|
|
{% else %}
|
|
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
|
|
<a href="#">Next</a>
|
|
</li>
|
|
{% endif %}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div id="tab-2" class="tab-pane">
|
|
<table class="table table-striped table-bordered table-hover " id="editable" >
|
|
<thead>
|
|
<tr>
|
|
<th class="text-center">用户</th>
|
|
<th class="text-center">角色</th>
|
|
<th class="text-center">属组</th>
|
|
<th class="text-center">主机数量</th>
|
|
<th class="text-center">操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="perm_list">
|
|
{% for user in contacts2.object_list %}
|
|
<tr class="gradeX">
|
|
<td class="text-center"> {{ user.name }} </td>
|
|
<td class="text-center"> {{ user.id | get_role }} </td>
|
|
<td class="text-center"> {{ user.username }} </td>
|
|
<td class="text-center"> {{ user.id | perm_asset_count }} </td>
|
|
<td class="text-center">
|
|
<a title="[ {{ user.name }} ] 授权详情" href="../perm_asset_detail/?id={{ user.id }}" class="iframe btn btn-xs btn-primary">详情</a>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
<div class="row">
|
|
<div class="col-sm-6">
|
|
<div class="dataTables_info" id="editable_info" role="status" aria-live="polite">
|
|
Showing {{ contacts2.start_index }} to {{ contacts2.end_index }} of {{ p2.count }} entries
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-6">
|
|
<div class="dataTables_paginate paging_simple_numbers" id="editable_paginate">
|
|
<ul class="pagination" style="margin-top: 0; float: right">
|
|
{% if contacts2.has_previous %}
|
|
<li class="paginate_button previous" aria-controls="editable" tabindex="0" id="editable_previous">
|
|
<a href="?page={{ contacts2.previous_page_number }}">Previous</a>
|
|
</li>
|
|
{% else %}
|
|
<li class="paginate_button previous disabled" aria-controls="editable" tabindex="0" id="editable_previous">
|
|
<a href="#">Previous</a>
|
|
</li>
|
|
{% endif %}
|
|
{% for page in p2.page_range %}
|
|
{% ifequal offset1 page %}
|
|
<li class="paginate_button active" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
|
|
{% else %}
|
|
<li class="paginate_button" aria-controls="editable" tabindex="0"><a href="?page={{ page }}" title="第{{ page }}页">{{ page }}</a></li>
|
|
{% endifequal %}
|
|
{% endfor %}
|
|
{% if contacts2.has_next %}
|
|
<li class="paginate_button next" aria-controls="editable" tabindex="0" id="editable_next">
|
|
<a href="?page={{ contacts2.next_page_number }}">Next</a>
|
|
</li>
|
|
{% else %}
|
|
<li class="paginate_button next disabled" aria-controls="editable" tabindex="0" id="editable_next">
|
|
<a href="#">Next</a>
|
|
</li>
|
|
{% endif %}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
$(document).ready(function(){
|
|
$(".iframe").colorbox({iframe:true, width:"70%", height:"70%"});
|
|
});
|
|
|
|
$(document).ready(function(){
|
|
$('#search_btn').click(function(){
|
|
if ($('#tab2').attr('class') == 'active'){
|
|
var tab='tab2'
|
|
} else {
|
|
var tab='tab1'
|
|
}
|
|
|
|
var search=$('#search_input').val()
|
|
|
|
$.post('/jperm/perm_list_ajax/',
|
|
{'tab': tab, 'search': search},
|
|
function(data){
|
|
if ($('#tab2').attr('class') == 'active'){
|
|
$('#tab-2').html(data)
|
|
} else {
|
|
$('#tab-1').html(data)
|
|
}
|
|
})
|
|
|
|
})
|
|
})
|
|
</script>
|
|
|
|
{% endblock %} |