Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
3c00c578
Commit
3c00c578
authored
8 years ago
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update some vie
parent
c0de35a6
No related merge requests found
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
125 additions
and
3 deletions
+125
-3
serializers.py
apps/audits/serializers.py
+3
-0
command_log_list.html
apps/audits/templates/audits/command_log_list.html
+107
-0
urls.py
apps/audits/urls.py
+1
-0
views.py
apps/audits/views.py
+14
-3
No files found.
apps/audits/serializers.py
View file @
3c00c578
...
@@ -18,6 +18,9 @@ class ProxyLogSerializer(serializers.ModelSerializer):
...
@@ -18,6 +18,9 @@ class ProxyLogSerializer(serializers.ModelSerializer):
@staticmethod
@staticmethod
def
get_time
(
obj
):
def
get_time
(
obj
):
if
not
obj
.
is_finished
:
return
''
else
:
return
timesince
(
obj
.
date_start
,
since
=
obj
.
date_finished
)
return
timesince
(
obj
.
date_start
,
since
=
obj
.
date_finished
)
@staticmethod
@staticmethod
...
...
This diff is collapsed.
Click to expand it.
apps/audits/templates/audits/command_log_list.html
0 → 100644
View file @
3c00c578
{% extends '_base_list.html' %}
{% load i18n static %}
{% block custom_head_css_js %}
{{ block.super }}
<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 %}
{% block table_search %}{% endblock %}
{% 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=
"table table-striped table-bordered table-hover "
id=
"proxy_log_list_table"
>
<thead>
<tr>
<th
class=
"text-center"
>
<div
class=
"checkbox checkbox-default"
>
<input
type=
"checkbox"
class=
"ipt_check_all"
>
</div>
</th>
<th
class=
"text-center"
>
{% trans 'Username' %}
</th>
<th
class=
"text-center"
>
{% trans 'IP' %}
</th>
<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>
<tbody>
</tbody>
</table>
{% 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>
{% endblock %}
This diff is collapsed.
Click to expand it.
apps/audits/urls.py
View file @
3c00c578
...
@@ -10,6 +10,7 @@ urlpatterns = [
...
@@ -10,6 +10,7 @@ urlpatterns = [
url
(
r'^proxy-log$'
,
views
.
ProxyLogListView
.
as_view
(),
name
=
'proxy-log-list'
),
url
(
r'^proxy-log$'
,
views
.
ProxyLogListView
.
as_view
(),
name
=
'proxy-log-list'
),
url
(
r'^proxy-log/(?P<pk>\d+)$'
,
views
.
ProxyLogDetailView
.
as_view
(),
name
=
'proxy-log-detail'
),
url
(
r'^proxy-log/(?P<pk>\d+)$'
,
views
.
ProxyLogDetailView
.
as_view
(),
name
=
'proxy-log-detail'
),
url
(
r'^proxy-log/(?P<pk>\d+)/commands$'
,
views
.
ProxyLogCommandsListView
.
as_view
(),
name
=
'proxy-log-commands-list'
),
url
(
r'^proxy-log/(?P<pk>\d+)/commands$'
,
views
.
ProxyLogCommandsListView
.
as_view
(),
name
=
'proxy-log-commands-list'
),
url
(
r'^command-log$'
,
views
.
CommandLogListView
.
as_view
(),
name
=
'command-log-list'
),
]
]
...
...
This diff is collapsed.
Click to expand it.
apps/audits/views.py
View file @
3c00c578
# ~*~ coding: utf-8 ~*~
# ~*~ coding: utf-8 ~*~
#
#
from
django.views.generic
import
ListView
,
UpdateView
,
DeleteView
,
DetailView
from
django.views.generic
import
ListView
,
UpdateView
,
DeleteView
,
DetailView
,
TemplateView
from
django.views.generic.edit
import
SingleObjectMixin
from
django.views.generic.edit
import
SingleObjectMixin
from
django.utils.translation
import
ugettext
as
_
from
django.utils.translation
import
ugettext
as
_
from
django.urls
import
reverse_lazy
from
django.urls
import
reverse_lazy
...
@@ -11,8 +11,7 @@ from .models import ProxyLog, CommandLog
...
@@ -11,8 +11,7 @@ from .models import ProxyLog, CommandLog
from
.utils
import
AdminUserRequiredMixin
from
.utils
import
AdminUserRequiredMixin
class
ProxyLogListView
(
ListView
):
class
ProxyLogListView
(
TemplateView
):
model
=
ProxyLog
template_name
=
'audits/proxy_log_list.html'
template_name
=
'audits/proxy_log_list.html'
def
get_context_data
(
self
,
**
kwargs
):
def
get_context_data
(
self
,
**
kwargs
):
...
@@ -50,3 +49,15 @@ class ProxyLogCommandsListView(AdminUserRequiredMixin, SingleObjectMixin, ListVi
...
@@ -50,3 +49,15 @@ class ProxyLogCommandsListView(AdminUserRequiredMixin, SingleObjectMixin, ListVi
def
get_queryset
(
self
):
def
get_queryset
(
self
):
return
list
(
self
.
object
.
command_log
.
all
())
return
list
(
self
.
object
.
command_log
.
all
())
class
CommandLogListView
(
AdminUserRequiredMixin
,
TemplateView
):
template_name
=
'audits/command_log_list.html'
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
'app'
:
'Audits'
,
'action'
:
'Command log list'
}
kwargs
.
update
(
context
)
return
super
(
CommandLogListView
,
self
)
.
get_context_data
(
**
kwargs
)
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment