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
da4d6b85
Commit
da4d6b85
authored
Apr 15, 2015
by
halcyon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bugs
parent
e72e30bc
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
28 deletions
+45
-28
urls.py
jlog/urls.py
+2
-1
views.py
jlog/views.py
+43
-27
nohup.out
nohup.out
+0
-0
nohup.out
websocket/nohup.out
+0
-0
No files found.
jlog/urls.py
View file @
da4d6b85
...
@@ -5,7 +5,7 @@ from jlog.views import *
...
@@ -5,7 +5,7 @@ from jlog.views import *
urlpatterns
=
patterns
(
''
,
urlpatterns
=
patterns
(
''
,
url
(
r'^$'
,
log_list
),
url
(
r'^$'
,
log_list
),
url
(
r'^log_list/(\w+)/$'
,
log_list
),
url
(
r'^log_list/(\w+)/$'
,
log_list
),
url
(
r'^log_kill/
(\d+)
'
,
log_kill
),
url
(
r'^log_kill/'
,
log_kill
),
url
(
r'^history/$'
,
log_history
),
url
(
r'^history/$'
,
log_history
),
url
(
r'^search/$'
,
log_search
),
url
(
r'^search/$'
,
log_search
),
)
)
\ No newline at end of file
jlog/views.py
View file @
da4d6b85
...
@@ -13,13 +13,27 @@ from connect import BASE_DIR
...
@@ -13,13 +13,27 @@ from connect import BASE_DIR
from
jlog.models
import
Log
from
jlog.models
import
Log
from
jumpserver.views
import
pages
from
jumpserver.views
import
pages
from
juser.models
import
User
,
DEPT
from
juser.models
import
User
,
DEPT
from
jumpserver.api
import
get_user_dept
,
is_super_user
,
is_group_admin
,
is_common_user
,
require_admin
,
require_login
from
jumpserver.api
import
*
from
jasset.views
import
httperror
CONF
=
ConfigParser
.
ConfigParser
()
CONF
=
ConfigParser
()
CONF
.
read
(
'
%
s/jumpserver.conf'
%
BASE_DIR
)
CONF
.
read
(
'
%
s/jumpserver.conf'
%
BASE_DIR
)
def
get_user_log
(
request
,
keyword
,
env
,
username
,
dept_name
):
def
get_user_info
(
request
,
offset
):
env_dic
=
{
'online'
:
0
,
'offline'
:
1
}
env
=
env_dic
[
offset
]
keyword
=
request
.
GET
.
get
(
'keyword'
,
''
)
user_info
=
get_session_user_info
(
request
)
user_id
,
username
=
user_info
[
0
:
2
]
dept_id
,
dept_name
=
user_info
[
3
:
5
]
ret
=
[
request
,
keyword
,
env
,
username
,
dept_name
]
return
ret
def
get_user_log
(
ret_list
):
request
,
keyword
,
env
,
username
,
dept_name
=
ret_list
if
is_super_user
(
request
):
if
is_super_user
(
request
):
if
keyword
:
if
keyword
:
posts
=
Log
.
objects
.
filter
(
Q
(
user__contains
=
keyword
)
|
Q
(
host__contains
=
keyword
))
\
posts
=
Log
.
objects
.
filter
(
Q
(
user__contains
=
keyword
)
|
Q
(
host__contains
=
keyword
))
\
...
@@ -47,23 +61,23 @@ def get_user_log(request, keyword, env, username, dept_name):
...
@@ -47,23 +61,23 @@ def get_user_log(request, keyword, env, username, dept_name):
def
log_list
(
request
,
offset
):
def
log_list
(
request
,
offset
):
header_title
,
path1
,
path2
=
u'查看日志'
,
u'查看日志'
,
u'在线用户'
header_title
,
path1
,
path2
=
u'查看日志'
,
u'查看日志'
,
u'在线用户'
web_socket_host
=
CONF
.
get
(
'websocket'
,
'web_socket_host'
)
web_socket_host
=
CONF
.
get
(
'websocket'
,
'web_socket_host'
)
env_dic
=
{
'online'
:
0
,
'offline'
:
1
}
posts
=
get_user_log
(
get_user_info
(
request
,
offset
))
env
=
env_dic
[
offset
]
keyword
=
request
.
GET
.
get
(
'keyword'
)
dept_id
=
get_user_dept
(
request
)
dept_name
=
DEPT
.
objects
.
get
(
id
=
dept_id
)
.
name
user_id
=
request
.
session
.
get
(
'user_id'
)
username
=
User
.
objects
.
get
(
id
=
user_id
)
.
username
posts
=
get_user_log
(
request
,
keyword
,
env
,
username
,
dept_name
)
contact_list
,
p
,
contacts
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
posts
,
request
)
contact_list
,
p
,
contacts
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
posts
,
request
)
return
render_to_response
(
'jlog/log_
%
s.html'
%
offset
,
locals
(),
context_instance
=
RequestContext
(
request
))
return
render_to_response
(
'jlog/log_
%
s.html'
%
offset
,
locals
(),
context_instance
=
RequestContext
(
request
))
@require_admin
@require_admin
def
log_kill
(
request
,
offset
):
def
log_kill
(
request
):
pid
=
offset
pid
=
request
.
GET
.
get
(
'id'
,
''
)
if
pid
:
log
=
Log
.
objects
.
filter
(
pid
=
pid
)
if
log
:
pid
=
log
.
pid
dept_name
=
log
.
dept_name
deptname
=
get_session_user_info
(
request
)[
4
]
if
is_group_admin
(
request
)
and
dept_name
!=
deptname
:
return
httperror
(
request
,
'Kill失败, 您无权操作!'
)
os
.
kill
(
int
(
pid
),
9
)
os
.
kill
(
int
(
pid
),
9
)
Log
.
objects
.
filter
(
pid
=
pid
)
.
update
(
is_finished
=
1
,
end_time
=
datetime
.
now
())
Log
.
objects
.
filter
(
pid
=
pid
)
.
update
(
is_finished
=
1
,
end_time
=
datetime
.
now
())
return
HttpResponseRedirect
(
'jlog/log_offline.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
return
HttpResponseRedirect
(
'jlog/log_offline.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
...
@@ -71,28 +85,30 @@ def log_kill(request, offset):
...
@@ -71,28 +85,30 @@ def log_kill(request, offset):
@require_login
@require_login
def
log_history
(
request
):
def
log_history
(
request
):
if
request
.
method
==
'GET'
:
log_id
=
request
.
GET
.
get
(
'id'
,
0
)
id
=
request
.
GET
.
get
(
'id'
,
0
)
log
=
Log
.
objects
.
filter
(
id
=
int
(
log_id
))
log
=
Log
.
objects
.
get
(
id
=
int
(
id
))
if
log
:
if
log
:
log
=
log
.
first
()
dept_name
=
log
.
dept_name
deptname
=
get_session_user_info
(
request
)[
4
]
if
is_group_admin
(
request
)
and
dept_name
!=
deptname
:
return
httperror
(
request
,
'查看失败, 您无权查看!'
)
elif
is_common_user
(
request
):
return
httperror
(
request
,
'查看失败, 您无权查看!'
)
log_his
=
"
%
s.his"
%
log
.
log_path
log_his
=
"
%
s.his"
%
log
.
log_path
if
os
.
path
.
isfile
(
log_his
):
if
os
.
path
.
isfile
(
log_his
):
f
=
open
(
log_his
)
f
=
open
(
log_his
)
content
=
f
.
read
()
content
=
f
.
read
()
return
HttpResponse
(
content
)
return
HttpResponse
(
content
)
else
:
return
httperror
(
request
,
'无日志记录, 请查看日志处理脚本是否开启!'
)
@require_login
@require_login
def
log_search
(
request
):
def
log_search
(
request
):
keyword
=
request
.
GET
.
get
(
'keyword'
)
offset
=
request
.
GET
.
get
(
'env'
,
''
)
offset
=
request
.
GET
.
get
(
'env'
)
posts
=
get_user_log
(
get_user_info
(
request
,
offset
))
dept_id
=
get_user_dept
(
request
)
dept_name
=
DEPT
.
objects
.
get
(
id
=
dept_id
)
.
name
user_id
=
request
.
session
.
get
(
'user_id'
)
username
=
User
.
objects
.
get
(
id
=
user_id
)
.
username
env_dic
=
{
'online'
:
0
,
'offline'
:
1
}
env
=
env_dic
[
offset
]
posts
=
get_user_log
(
request
,
keyword
,
env
,
username
,
dept_name
)
contact_list
,
p
,
contacts
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
posts
,
request
)
contact_list
,
p
,
contacts
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
posts
,
request
)
return
render_to_response
(
'jlog/log_search.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
return
render_to_response
(
'jlog/log_search.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
nohup.out
0 → 100644
View file @
da4d6b85
websocket/nohup.out
0 → 100644
View file @
da4d6b85
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