mirror of https://github.com/jumpserver/jumpserver
172 lines
6.9 KiB
HTML
172 lines
6.9 KiB
HTML
{% extends '_base_list.html' %}
|
||
{% load i18n %}
|
||
|
||
{% block help_message %}
|
||
<div class="alert alert-info help-message">
|
||
系统用户是 用户登录资产(服务器)时使用的用户,如 web, sa, dba等具有特殊功能的用户。系统用户创建时,如果选择了自动推送
|
||
Jumpserver会使用ansible自动推送系统用户到资产中,如果资产(交换机、windows)不支持ansible, 请手动填写账号密码。
|
||
</div>
|
||
{% endblock %}
|
||
|
||
{% block table_search %}
|
||
{% endblock %}
|
||
|
||
{% block table_container %}
|
||
<div class="uc pull-left m-r-5">
|
||
<a href="{% url 'assets:system-user-create' %}" class="btn btn-sm btn-primary "> {% trans "Create system user" %} </a>
|
||
</div>
|
||
<table class="table table-striped table-bordered table-hover " id="system_user_list_table" >
|
||
<thead>
|
||
<tr>
|
||
<th class="text-center">
|
||
<input type="checkbox" id="check_all" class="ipt_check_all" >
|
||
</th>
|
||
<th class="text-center">{% trans 'Name' %}</th>
|
||
<th class="text-center">{% trans 'Username' %}</th>
|
||
<th class="text-center">{% trans 'Asset' %}</th>
|
||
<th class="text-center">{% trans 'Reachable' %}</th>
|
||
<th class="text-center">{% trans 'Unreachable' %}</th>
|
||
<th class="text-center">{% trans 'Ratio' %}</th>
|
||
<th class="text-center">{% trans 'Comment' %}</th>
|
||
<th class="text-center">{% trans 'Action' %}</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
</tbody>
|
||
</table>
|
||
{% endblock %}
|
||
{% block custom_foot_js %}
|
||
<script>
|
||
function initTable() {
|
||
var options = {
|
||
ele: $('#system_user_list_table'),
|
||
columnDefs: [
|
||
{targets: 1, createdCell: function (td, cellData, rowData) {
|
||
var detail_btn = '<a href="{% url "assets:system-user-detail" pk=DEFAULT_PK %}">' + cellData + '</a>';
|
||
$(td).html(detail_btn.replace('{{ DEFAULT_PK }}', rowData.id));
|
||
}},
|
||
{targets: 4, createdCell: function (td, cellData) {
|
||
var innerHtml = "";
|
||
if (cellData !== 0) {
|
||
innerHtml = "<span class='text-navy'>" + cellData + "</span>";
|
||
} else {
|
||
innerHtml = "<span>" + cellData + "</span>";
|
||
}
|
||
$(td).html('<span href="javascript:void(0);" data-toggle="tooltip" title="' + cellData +'">' + innerHtml + '</span>');
|
||
}},
|
||
{targets: 5, createdCell: function (td, cellData) {
|
||
var innerHtml = "";
|
||
if (cellData !== 0) {
|
||
innerHtml = "<span class='text-danger'>" + cellData + "</span>";
|
||
} else {
|
||
innerHtml = "<span>" + cellData + "</span>";
|
||
}
|
||
$(td).html('<span href="javascript:void(0);" data-toggle="tooltip" title="' + cellData + '">' + innerHtml + '</span>');
|
||
}},
|
||
{targets: 6, createdCell: function (td, cellData, rowData) {
|
||
var val = 0;
|
||
var innerHtml = "";
|
||
var total = rowData.assets_amount;
|
||
var reachable = rowData.reachable_amount;
|
||
if (total !== 0) {
|
||
val = reachable/total * 100;
|
||
}
|
||
|
||
if (val === 100) {
|
||
innerHtml = "<span class='text-navy'>" + val + "% </span>";
|
||
} else {
|
||
var num = new Number(val);
|
||
innerHtml = "<span class='text-danger'>" + num.toFixed(1) + "% </span>";
|
||
}
|
||
$(td).html('<span href="javascript:void(0);" data-toggle="tooltip" title="' + cellData + '">' + innerHtml + '</span>');
|
||
|
||
}},
|
||
{targets: 8, createdCell: function (td, cellData, rowData) {
|
||
var update_btn = '<a href="{% url "assets:system-user-update" pk=DEFAULT_PK %}" class="btn btn-xs m-l-xs btn-info">{% trans "Update" %}</a>'.replace('{{ DEFAULT_PK }}', cellData);
|
||
var del_btn = '<a class="btn btn-xs btn-danger m-l-xs btn_admin_user_delete" data-uid="{{ DEFAULT_PK }}">{% trans "Delete" %}</a>'.replace('{{ DEFAULT_PK }}', cellData);
|
||
$(td).html(update_btn + del_btn)
|
||
}}],
|
||
ajax_url: '{% url "api-assets:system-user-list" %}',
|
||
columns: [
|
||
{data: "id" }, {data: "name" }, {data: "username" }, {data: "assets_amount" },
|
||
{data: "reachable_amount"}, {data: "unreachable_amount"}, {data: "id"}, {data: "comment" }, {data: "id" }
|
||
],
|
||
op_html: $('#actions').html()
|
||
};
|
||
jumpserver.initDataTable(options);
|
||
}
|
||
|
||
$(document).ready(function(){
|
||
initTable();
|
||
})
|
||
|
||
.on('click', '.btn_admin_user_delete', function () {
|
||
var $this = $(this);
|
||
var $data_table = $('#cluster_list_table').DataTable();
|
||
var name = $(this).closest("tr").find(":nth-child(2)").children('a').html();
|
||
var uid = $this.data('uid');
|
||
var the_url = '{% url "api-assets:system-user-detail" pk=DEFAULT_PK %}'.replace('{{ DEFAULT_PK }}', uid);
|
||
objectDelete($this, name, the_url);
|
||
setTimeout( function () {
|
||
$data_table.ajax.reload();
|
||
}, 3000);
|
||
})
|
||
|
||
.on('click', '#btn_bulk_update', function () {
|
||
var action = $('#slct_bulk_update').val();
|
||
var $data_table = $('#system_user_list_table').DataTable();
|
||
var id_list = [];
|
||
var plain_id_list = [];
|
||
$data_table.rows({selected: true}).every(function(){
|
||
id_list.push({id: this.data().id});
|
||
plain_id_list.push(this.data().id);
|
||
});
|
||
if (id_list === []) {
|
||
return false;
|
||
}
|
||
var the_url = "{% url 'api-assets:system-user-list' %}";
|
||
function doDelete() {
|
||
swal({
|
||
title: "{% trans 'Are you sure?' %}",
|
||
text: "{% trans 'This will delete the selected System Users !!!' %}",
|
||
type: "warning",
|
||
showCancelButton: true,
|
||
confirmButtonColor: "#DD6B55",
|
||
confirmButtonText: "{% trans 'Confirm' %}",
|
||
closeOnConfirm: false
|
||
}, function() {
|
||
var success = function() {
|
||
var msg = "{% trans 'System Users Deleted.' %}";
|
||
swal("{% trans 'System Users Delete' %}", msg, "success");
|
||
$('#system_user_list_table').DataTable().ajax.reload();
|
||
};
|
||
var fail = function() {
|
||
var msg = "{% trans 'System Users Deleting failed.' %}";
|
||
swal("{% trans 'System Users Delete' %}", msg, "error");
|
||
};
|
||
var url_delete = the_url + '?id__in=' + JSON.stringify(plain_id_list);
|
||
APIUpdateAttr({url: url_delete, method: 'DELETE', success: success, error: fail});
|
||
$data_table.ajax.reload();
|
||
jumpserver.checked = false;
|
||
});
|
||
}
|
||
function doUpdate() {
|
||
{# TODO: bulk update the System Users #}
|
||
}
|
||
switch (action) {
|
||
case 'delete':
|
||
doDelete();
|
||
break;
|
||
case 'update':
|
||
doUpdate();
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
})
|
||
</script>
|
||
{% endblock %}
|
||
|
||
|
||
|