mirror of https://github.com/jumpserver/jumpserver
				
				
				
			Finish command log list
							parent
							
								
									3c00c578c3
								
							
						
					
					
						commit
						589d0d0fac
					
				| 
						 | 
					@ -1,107 +1,46 @@
 | 
				
			||||||
{% extends '_base_list.html' %}
 | 
					{% extends '_base_list.html' %}
 | 
				
			||||||
{% load i18n static %}
 | 
					{% load i18n %}
 | 
				
			||||||
{% block custom_head_css_js %}
 | 
					{% load static %}
 | 
				
			||||||
    {{ block.super }}
 | 
					{% load common_tags %}
 | 
				
			||||||
 | 
					{% block content_left_head %}
 | 
				
			||||||
 | 
					{#    <a href="{% url 'perms:asset-permission-create' %}" class="btn btn-sm btn-primary "> {% trans "Create permission" %} </a>#}
 | 
				
			||||||
    <link href="{% static "css/plugins/footable/footable.core.css" %}" rel="stylesheet">
 | 
					    <link href="{% static "css/plugins/footable/footable.core.css" %}" rel="stylesheet">
 | 
				
			||||||
    <style>
 | 
					 | 
				
			||||||
        div.dataTables_wrapper div.dataTables_filter,
 | 
					 | 
				
			||||||
        .dataTables_length {
 | 
					 | 
				
			||||||
            float: right !important;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        div.dataTables_wrapper div.dataTables_filter {
 | 
					 | 
				
			||||||
            margin-left: 15px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
{% endblock %}
 | 
					{% endblock %}
 | 
				
			||||||
{% block table_search %}{% endblock %}
 | 
					
 | 
				
			||||||
{% block table_container %}
 | 
					{% block table_container %}
 | 
				
			||||||
{#<div class="uc pull-left m-l-5 m-r-5"><a href="{% url "users:user-create" %}" class="btn btn-sm btn-primary"> {% trans "Create user" %} </a></div>#}
 | 
					    <table class="footable table table-stripped toggle-arrow-tiny" data-page="false">
 | 
				
			||||||
    <table class="table table-striped table-bordered table-hover " id="proxy_log_list_table" >
 | 
					 | 
				
			||||||
        <thead>
 | 
					        <thead>
 | 
				
			||||||
            <tr>
 | 
					        <tr>
 | 
				
			||||||
                <th class="text-center">
 | 
					            <th data-toggle="true">ID</th>
 | 
				
			||||||
                    <div class="checkbox checkbox-default">
 | 
					            <th>Command</th>
 | 
				
			||||||
                        <input type="checkbox" class="ipt_check_all">
 | 
					            <th>Username</th>
 | 
				
			||||||
                    </div>
 | 
					            <th>IP</th>
 | 
				
			||||||
                </th>
 | 
					            <th>Datetime</th>
 | 
				
			||||||
                <th class="text-center">{% trans 'Username' %}</th>
 | 
					            <th data-hide="all">Output</th>
 | 
				
			||||||
                <th class="text-center">{% trans 'IP' %}</th>
 | 
					        </tr>
 | 
				
			||||||
                <th class="text-center">{% trans 'System user' %}</th>
 | 
					 | 
				
			||||||
    {#            <th class="text-center">{% trans 'Login type' %}</th>#}
 | 
					 | 
				
			||||||
                <th class="text-center">{% trans 'Command' %}</th>
 | 
					 | 
				
			||||||
                <th class="text-center">{% trans 'Success' %}</th>
 | 
					 | 
				
			||||||
                <th class="text-center">{% trans 'Finished' %}</th>
 | 
					 | 
				
			||||||
                <th class="text-center">{% trans 'Date start' %}</th>
 | 
					 | 
				
			||||||
                <th class="text-center">{% trans 'Time' %}</th>
 | 
					 | 
				
			||||||
                <th class="text-center">{% trans 'Action' %}</th>
 | 
					 | 
				
			||||||
            </tr>
 | 
					 | 
				
			||||||
        </thead>
 | 
					        </thead>
 | 
				
			||||||
        <tbody>
 | 
					        <tbody>
 | 
				
			||||||
 | 
					        {% for command in command_list %}
 | 
				
			||||||
 | 
					            <tr>
 | 
				
			||||||
 | 
					                <td>{{ command.command_no }}</td>
 | 
				
			||||||
 | 
					                <td>{{ command.command }}</td>
 | 
				
			||||||
 | 
					                <td>{{ command.proxy_log.username }}</td>
 | 
				
			||||||
 | 
					                <td>{{ command.proxy_log.ip }}</td>
 | 
				
			||||||
 | 
					                <td>{{ command.datetime }}</td>
 | 
				
			||||||
 | 
					                <td>{{ command.output_decode |safe }}</td>
 | 
				
			||||||
 | 
					            </tr>
 | 
				
			||||||
 | 
					        {% endfor %}
 | 
				
			||||||
        </tbody>
 | 
					        </tbody>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
{% endblock %}
 | 
					{% endblock %}
 | 
				
			||||||
{% block custom_foot_js %}
 | 
					 | 
				
			||||||
<script src="{% static 'js/jquery.form.min.js' %}"></script>
 | 
					 | 
				
			||||||
<script src="{% static "js/plugins/layer/layer.js" %}"></script>
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
$(document).ready(function(){
 | 
					 | 
				
			||||||
    var options = {
 | 
					 | 
				
			||||||
        ele: $('#proxy_log_list_table'),
 | 
					 | 
				
			||||||
        columnDefs: [
 | 
					 | 
				
			||||||
            {targets: 1, createdCell: function (td, cellData, rowData) {
 | 
					 | 
				
			||||||
                var detail_btn = '<a href="{% url "users:user-detail" pk=99991937 %}">' + cellData + '</a>';
 | 
					 | 
				
			||||||
                $(td).html(detail_btn.replace('99991937', rowData.id));
 | 
					 | 
				
			||||||
             }},
 | 
					 | 
				
			||||||
            {targets: 4, createdCell: function (td, cellData, rowData) {
 | 
					 | 
				
			||||||
                if (cellData) {
 | 
					 | 
				
			||||||
                    $(td).html('<a url="{% url "audits:proxy-log-commands-list" pk=99991938 %}" class="commands">99991937</a>'
 | 
					 | 
				
			||||||
                            .replace('99991937', cellData)
 | 
					 | 
				
			||||||
                            .replace('99991938',rowData.id))
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }},
 | 
					 | 
				
			||||||
            {targets: 5, createdCell: function (td, cellData) {
 | 
					 | 
				
			||||||
                if (cellData) {
 | 
					 | 
				
			||||||
                    $(td).html('<i class="fa fa-times text-danger"></i>')
 | 
					 | 
				
			||||||
                } else {
 | 
					 | 
				
			||||||
                    $(td).html('<i class="fa fa-check text-navy"></i>')
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
             }},
 | 
					 | 
				
			||||||
            {targets: 6, createdCell: function (td, cellData) {
 | 
					 | 
				
			||||||
                if (!cellData) {
 | 
					 | 
				
			||||||
                    $(td).html('<i class="fa fa-times text-danger"></i>')
 | 
					 | 
				
			||||||
                } else {
 | 
					 | 
				
			||||||
                    $(td).html('<i class="fa fa-check text-navy"></i>')
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
             }},
 | 
					 | 
				
			||||||
            {targets: 9, createdCell: function (td, cellData, rowData) {
 | 
					 | 
				
			||||||
                var detail_btn = '<a href="{% url "audits:proxy-log-detail" pk=99991937 %}" class="btn btn-xs btn-info">{% trans "Detail" %}</a>'
 | 
					 | 
				
			||||||
                        .replace('99991937', cellData);
 | 
					 | 
				
			||||||
                var delete_btn = '<a class="btn btn-xs btn-danger m-l-xs btn_delete" data-uid="99991937" data-name="99991938">{% trans "Delete" %}</a>'
 | 
					 | 
				
			||||||
                        .replace('99991937', cellData)
 | 
					 | 
				
			||||||
                        .replace('99991938', rowData.name);
 | 
					 | 
				
			||||||
                $(td).html(detail_btn + delete_btn)
 | 
					 | 
				
			||||||
            }}
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        ajax_url: '{% url "audits:proxy-log-list-create-api" %}',
 | 
					 | 
				
			||||||
        columns: [{data: function(){return ""}}, {data: "name" }, {data: "ip"},
 | 
					 | 
				
			||||||
                  {data: "system_user"}, {data: "command_length"}, {data: 'was_failed'},
 | 
					 | 
				
			||||||
                  {data: "is_finished"}, {data: "date_start"}, {data: 'time'}, {data: 'id'}],
 | 
					 | 
				
			||||||
        op_html: $('#actions').html()
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    jumpserver.initDataTable(options);
 | 
					 | 
				
			||||||
}).on('click', '.commands', function () {
 | 
					 | 
				
			||||||
    var url = $(this).attr('url');
 | 
					 | 
				
			||||||
    layer.open({
 | 
					 | 
				
			||||||
         type: 2,
 | 
					 | 
				
			||||||
         title: '很多时候,我们想最大化看,比如像这个页面。',
 | 
					 | 
				
			||||||
         shadeClose: true,
 | 
					 | 
				
			||||||
         shade: false,
 | 
					 | 
				
			||||||
         maxmin: true, //开启最大化最小化按钮
 | 
					 | 
				
			||||||
         area: ['893px', '600px'],
 | 
					 | 
				
			||||||
         content: url
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
</script>
 | 
					{% block custom_foot_js %}
 | 
				
			||||||
 | 
					    <script src="{% static "js/plugins/footable/footable.all.min.js" %}"></script>
 | 
				
			||||||
 | 
					    <script>
 | 
				
			||||||
 | 
					        $(document).ready(function () {
 | 
				
			||||||
 | 
					            $('.footable').footable();
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    </script>
 | 
				
			||||||
{% endblock %}
 | 
					{% endblock %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,8 +51,24 @@ class ProxyLogCommandsListView(AdminUserRequiredMixin, SingleObjectMixin, ListVi
 | 
				
			||||||
        return list(self.object.command_log.all())
 | 
					        return list(self.object.command_log.all())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CommandLogListView(AdminUserRequiredMixin, TemplateView):
 | 
					class CommandLogListView(AdminUserRequiredMixin, ListView):
 | 
				
			||||||
 | 
					    model = CommandLog
 | 
				
			||||||
    template_name = 'audits/command_log_list.html'
 | 
					    template_name = 'audits/command_log_list.html'
 | 
				
			||||||
 | 
					    paginate_by = settings.CONFIG.DISPLAY_PER_PAGE
 | 
				
			||||||
 | 
					    context_object_name = 'command_list'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_queryset(self):
 | 
				
			||||||
 | 
					        # Todo: Default order by lose asset connection num
 | 
				
			||||||
 | 
					        self.queryset = super(CommandLogListView, self).get_queryset()
 | 
				
			||||||
 | 
					        self.keyword = keyword = self.request.GET.get('keyword', '')
 | 
				
			||||||
 | 
					        self.sort = sort = self.request.GET.get('sort', '-datetime')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if keyword:
 | 
				
			||||||
 | 
					            self.queryset = self.queryset.filter()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if sort:
 | 
				
			||||||
 | 
					            self.queryset = self.queryset.order_by(sort)
 | 
				
			||||||
 | 
					        return self.queryset
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_context_data(self, **kwargs):
 | 
					    def get_context_data(self, **kwargs):
 | 
				
			||||||
        context = {
 | 
					        context = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,6 +45,9 @@
 | 
				
			||||||
        <li id="proxy-log">
 | 
					        <li id="proxy-log">
 | 
				
			||||||
            <a href="{% url 'audits:proxy-log-list' %}">{% trans 'Proxy log' %}</a>
 | 
					            <a href="{% url 'audits:proxy-log-list' %}">{% trans 'Proxy log' %}</a>
 | 
				
			||||||
        </li>
 | 
					        </li>
 | 
				
			||||||
 | 
					        <li id="command-log">
 | 
				
			||||||
 | 
					            <a href="{% url 'audits:command-log-list' %}">{% trans 'Command log' %}</a>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
        <li id="login">
 | 
					        <li id="login">
 | 
				
			||||||
            <a href="{% url 'perms:asset-permission-list' %}">{% trans 'Login log' %}</a>
 | 
					            <a href="{% url 'perms:asset-permission-list' %}">{% trans 'Login log' %}</a>
 | 
				
			||||||
        </li>
 | 
					        </li>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue