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
ce6494ba
Commit
ce6494ba
authored
Mar 14, 2015
by
halcyon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bugs
parent
691271c7
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
54 additions
and
34 deletions
+54
-34
connect.py
connect.py
+2
-0
views.py
jasset/views.py
+15
-3
jumpserver.conf
jumpserver.conf
+4
-4
views.py
jumpserver/views.py
+1
-1
log_handler.py
log_handler.py
+13
-5
group_detail.html
templates/jasset/group_detail.html
+1
-1
host_edit.html
templates/jasset/host_edit.html
+15
-17
host_list.html
templates/jasset/host_list.html
+1
-1
host_search.html
templates/jasset/host_search.html
+1
-1
idc_detail.html
templates/jasset/idc_detail.html
+1
-1
No files found.
connect.py
View file @
ce6494ba
...
@@ -126,6 +126,7 @@ def log_record(username, host):
...
@@ -126,6 +126,7 @@ def log_record(username, host):
raise
ServerError
(
'Create logfile failed, Please modify
%
s permission.'
%
today_connect_log_dir
)
raise
ServerError
(
'Create logfile failed, Please modify
%
s permission.'
%
today_connect_log_dir
)
log
=
Log
(
user
=
username
,
host
=
host
,
log_path
=
log_file_path
,
start_time
=
datetime
.
now
(),
pid
=
pid
)
log
=
Log
(
user
=
username
,
host
=
host
,
log_path
=
log_file_path
,
start_time
=
datetime
.
now
(),
pid
=
pid
)
log_file
.
write
(
'Starttime is
%
s
\n
'
%
datetime
.
now
())
log
.
save
()
log
.
save
()
return
log_file
,
log
return
log_file
,
log
...
@@ -168,6 +169,7 @@ def posix_shell(chan, username, host):
...
@@ -168,6 +169,7 @@ def posix_shell(chan, username, host):
finally
:
finally
:
timestamp_end
=
time
.
time
()
timestamp_end
=
time
.
time
()
termios
.
tcsetattr
(
sys
.
stdin
,
termios
.
TCSADRAIN
,
old_tty
)
termios
.
tcsetattr
(
sys
.
stdin
,
termios
.
TCSADRAIN
,
old_tty
)
log_file
.
write
(
'Endtime is
%
s'
%
datetime
.
now
())
log_file
.
close
()
log_file
.
close
()
log
.
is_finished
=
True
log
.
is_finished
=
True
log
.
log_finished
=
False
log
.
log_finished
=
False
...
...
jasset/views.py
View file @
ce6494ba
...
@@ -22,7 +22,8 @@ def index(request):
...
@@ -22,7 +22,8 @@ def index(request):
def
f_add_host
(
ip
,
port
,
idc
,
jtype
,
group
,
active
,
comment
,
username
=
''
,
password
=
''
):
def
f_add_host
(
ip
,
port
,
idc
,
jtype
,
group
,
active
,
comment
,
username
=
''
,
password
=
''
):
groups
=
[]
groups
=
[]
idc
=
IDC
.
objects
.
get
(
name
=
idc
)
idc
=
IDC
.
objects
.
get
(
name
=
idc
)
if
type
==
'M'
:
if
jtype
==
'M'
:
print
username
,
password
a
=
Asset
(
ip
=
ip
,
port
=
port
,
a
=
Asset
(
ip
=
ip
,
port
=
port
,
login_type
=
jtype
,
idc
=
idc
,
login_type
=
jtype
,
idc
=
idc
,
is_active
=
int
(
active
),
is_active
=
int
(
active
),
...
@@ -135,7 +136,15 @@ def batch_host_edit(request):
...
@@ -135,7 +136,15 @@ def batch_host_edit(request):
j_active
=
request
.
POST
.
get
(
j_active
)
.
strip
()
j_active
=
request
.
POST
.
get
(
j_active
)
.
strip
()
j_comment
=
request
.
POST
.
get
(
j_comment
)
.
strip
()
j_comment
=
request
.
POST
.
get
(
j_comment
)
.
strip
()
jasset_host_edit
(
j_id
,
j_ip
,
j_idc
,
j_port
,
j_type
,
j_group
,
j_active
,
j_comment
)
if
j_type
==
'M'
:
j_user
=
"editable["
+
str
(
i
)
+
"][j_user]"
j_password
=
"editable["
+
str
(
i
)
+
"][j_password]"
j_user
=
request
.
POST
.
get
(
j_user
)
.
strip
()
password
=
request
.
POST
.
get
(
j_password
)
.
strip
()
j_password
=
cryptor
.
encrypt
(
password
)
jasset_host_edit
(
j_id
,
j_ip
,
j_idc
,
j_port
,
j_type
,
j_group
,
j_active
,
j_comment
,
j_user
,
j_password
)
else
:
jasset_host_edit
(
j_id
,
j_ip
,
j_idc
,
j_port
,
j_type
,
j_group
,
j_active
,
j_comment
)
return
render_to_response
(
'jasset/host_list.html'
)
return
render_to_response
(
'jasset/host_list.html'
)
...
@@ -199,8 +208,11 @@ def host_edit(request):
...
@@ -199,8 +208,11 @@ def host_edit(request):
a
=
Asset
.
objects
.
get
(
id
=
int
(
offset
))
a
=
Asset
.
objects
.
get
(
id
=
int
(
offset
))
if
j_type
==
'M'
:
if
j_type
==
'M'
:
if
post
.
password
==
request
.
POST
.
get
(
'j_password'
):
j_password
=
post
.
password
else
:
j_password
=
cryptor
.
encrypt
(
request
.
POST
.
get
(
'j_password'
))
j_user
=
request
.
POST
.
get
(
'j_user'
)
j_user
=
request
.
POST
.
get
(
'j_user'
)
j_password
=
cryptor
.
encrypt
(
request
.
POST
.
get
(
'j_password'
))
a
.
ip
=
j_ip
a
.
ip
=
j_ip
a
.
port
=
j_port
a
.
port
=
j_port
a
.
login_type
=
j_type
a
.
login_type
=
j_type
...
...
jumpserver.conf
View file @
ce6494ba
...
@@ -9,10 +9,10 @@ database = jumpserver
...
@@ -9,10 +9,10 @@ database = jumpserver
[
ldap
]
[
ldap
]
ldap_enable
=
0
ldap_enable
=
0
host_url
=
ldap
://
1
27
.
0
.
0
.
1
:
389
host_url
=
ldap
://
1
92
.
168
.
8
.
230
:
389
base_dn
=
dc
=
jumpserver
,
dc
=
org
base_dn
=
dc
=
fengxing
,
dc
=
com
root_dn
=
cn
=
admin
,
dc
=
jumpserver
,
dc
=
org
root_dn
=
cn
=
admin
,
dc
=
fengxing
,
dc
=
com
root_pw
=
secret234
root_pw
=
123456
[
websocket
]
[
websocket
]
web_socket_host
=
127
.
0
.
0
.
1
:
3000
web_socket_host
=
127
.
0
.
0
.
1
:
3000
...
...
jumpserver/views.py
View file @
ce6494ba
...
@@ -126,7 +126,7 @@ def page_list_return(total, current=1):
...
@@ -126,7 +126,7 @@ def page_list_return(total, current=1):
return
range
(
min_page
,
max_page
+
1
)
return
range
(
min_page
,
max_page
+
1
)
def
jasset_host_edit
(
j_id
,
j_ip
,
j_idc
,
j_port
,
j_type
,
j_group
,
j_active
,
j_comment
):
def
jasset_host_edit
(
j_id
,
j_ip
,
j_idc
,
j_port
,
j_type
,
j_group
,
j_active
,
j_comment
,
j_user
=
''
,
j_password
=
''
):
groups
=
[]
groups
=
[]
is_active
=
{
u'是'
:
'1'
,
u'否'
:
'2'
}
is_active
=
{
u'是'
:
'1'
,
u'否'
:
'2'
}
login_types
=
{
'LDAP'
:
'L'
,
'SSH_KEY'
:
'S'
,
'PASSWORD'
:
'P'
,
'MAP'
:
'M'
}
login_types
=
{
'LDAP'
:
'L'
,
'SSH_KEY'
:
'S'
,
'PASSWORD'
:
'P'
,
'MAP'
:
'M'
}
...
...
log_handler.py
View file @
ce6494ba
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
#coding: utf-8
#coding: utf-8
import
os
import
os
import
re
import
time
import
time
import
psutil
import
psutil
from
datetime
import
datetime
from
datetime
import
datetime
...
@@ -15,14 +16,21 @@ from jlog.models import Log
...
@@ -15,14 +16,21 @@ from jlog.models import Log
def
log_hanler
(
id
):
def
log_hanler
(
id
):
log
=
Log
.
objects
.
get
(
id
=
id
)
log
=
Log
.
objects
.
get
(
id
=
id
)
pattern
=
re
.
compile
(
r'\[.*@.*\][\$#].*'
)
if
log
:
if
log
:
filename
=
log
.
log_path
filename
=
log
.
log_path
if
os
.
path
.
isfile
(
filename
):
if
os
.
path
.
isfile
(
filename
):
ret1
=
os
.
system
(
'cat
%
s | grep "DateTime" >
%
s.his'
%
(
filename
,
filename
))
f_his
=
filename
+
'.his'
ret2
=
os
.
system
(
'cat
%
s | grep "
\
[.*@.*
\
][
\
$
\
#]" >>
%
s.his'
%
(
filename
,
filename
))
f1
=
open
(
filename
)
ret3
=
os
.
system
(
'cat
%
s | grep "EndTime" >>
%
s.his'
%
(
filename
,
filename
))
f2
=
open
(
f_his
,
'a'
)
if
(
ret1
+
ret2
+
ret3
)
==
0
:
lines
=
f1
.
readlines
()
print
'Handler
%
s ok.'
%
filename
for
line
in
lines
[
7
:]:
match
=
pattern
.
match
(
line
)
if
match
:
newline
=
re
.
sub
(
'
\
[[A-Z]'
,
''
,
line
)
f2
.
write
(
newline
)
f1
.
close
()
f2
.
close
()
log
.
log_finished
=
True
log
.
log_finished
=
True
log
.
save
()
log
.
save
()
...
...
templates/jasset/group_detail.html
View file @
ce6494ba
...
@@ -57,7 +57,7 @@
...
@@ -57,7 +57,7 @@
<td
class=
"text-center"
name=
"j_port"
>
{{ post.port }}
</td>
<td
class=
"text-center"
name=
"j_port"
>
{{ post.port }}
</td>
<td
class=
"text-center"
name=
"j_type"
>
{{ login_types|get_item:post.login_type }}
</td>
<td
class=
"text-center"
name=
"j_type"
>
{{ login_types|get_item:post.login_type }}
</td>
<td
class=
"text-center"
name=
"j_idc"
>
{{ post.idc.name }}
</td>
<td
class=
"text-center"
name=
"j_idc"
>
{{ post.idc.name }}
</td>
<td
class=
"text-center"
name=
"j_group"
>
{
% for group in post.bis_group.all|filter_private %} {{ group }} {% endfor %
}
</td>
<td
class=
"text-center"
name=
"j_group"
>
{
{ post.bis_group.all | group_str2 }
}
</td>
<td
class=
"text-center"
name=
"j_active"
>
{{ post.is_active|bool2str }}
</td>
<td
class=
"text-center"
name=
"j_active"
>
{{ post.is_active|bool2str }}
</td>
<td
class=
"text-center"
>
{{ post.date_added|date:"Y-m-d H:i:s" }}
</td>
<td
class=
"text-center"
>
{{ post.date_added|date:"Y-m-d H:i:s" }}
</td>
<td
class=
"text-center"
name=
"j_comment"
>
{{ post.comment }}
</td>
<td
class=
"text-center"
name=
"j_comment"
>
{{ post.comment }}
</td>
...
...
templates/jasset/host_edit.html
View file @
ce6494ba
...
@@ -56,15 +56,25 @@
...
@@ -56,15 +56,25 @@
{% endfor %}
{% endfor %}
</div>
</div>
<div
name=
"a1"
id=
a1
style=
"display:none;"
>
{% ifequal post.login_type M %}
<div
class=
"form-group"
><label
class=
"col-sm-2 col-sm-offset-1 control-label"
>
普通用户名
</label>
<div
class=
"form-group"
><label
class=
"col-sm-2 col-sm-offset-1 control-label"
>
普通用户名
</label>
<div
class=
"col-sm-6"
><input
type=
"text"
name=
"j_user"
placeholder=
"lilei
"
class=
"form-control"
></div>
<div
class=
"col-sm-6"
><input
type=
"text"
name=
"j_user"
value=
"{{ post.username }}
"
class=
"form-control"
></div>
</div>
</div>
<div
class=
"form-group"
><label
class=
"col-sm-2 col-sm-offset-1 control-label"
>
普通用户密码
</label>
<div
class=
"form-group"
><label
class=
"col-sm-2 col-sm-offset-1 control-label"
>
普通用户密码
</label>
<div
class=
"col-sm-6"
><input
type=
"password"
name=
"j_password"
placeholder=
"Password
"
class=
"form-control"
></div>
<div
class=
"col-sm-6"
><input
type=
"password"
name=
"j_password"
value=
"{{ post.password }}
"
class=
"form-control"
></div>
</div>
</div>
</div>
{% else %}
<div
name=
"a1"
id=
a1
style=
"display:none;"
>
<div
class=
"form-group"
><label
class=
"col-sm-2 col-sm-offset-1 control-label"
>
普通用户名
</label>
<div
class=
"col-sm-6"
><input
type=
"text"
name=
"j_user"
placeholder=
"lilei"
class=
"form-control"
></div>
</div>
<div
class=
"form-group"
><label
class=
"col-sm-2 col-sm-offset-1 control-label"
>
普通用户密码
</label>
<div
class=
"col-sm-6"
><input
type=
"password"
name=
"j_password"
placeholder=
"Password"
class=
"form-control"
></div>
</div>
</div>
{% endifequal %}
</div>
</div>
<div
class=
"hr-line-dashed"
></div>
<div
class=
"hr-line-dashed"
></div>
...
@@ -177,19 +187,7 @@ $('#assetForm').validator({
...
@@ -177,19 +187,7 @@ $('#assetForm').validator({
msg
:
{
required
:
"请填写用户名"
}
msg
:
{
required
:
"请填写用户名"
}
},
},
"j_password"
:
{
"j_password"
:
{
rule
:
"required(type_m);length[6~16]"
,
rule
:
"required(type_m);length[6~100]"
,
tip
:
"密码6-16位"
,
ok
:
""
,
msg
:
{
required
:
"6-16位"
}
},
"j_root"
:
{
rule
:
"required(type_m)"
,
tip
:
"超管用户名"
,
ok
:
""
,
msg
:
{
required
:
"请填写用户名"
}
},
"j_passwd"
:
{
rule
:
"required(type_m);length[6~16]"
,
tip
:
"密码6-16位"
,
tip
:
"密码6-16位"
,
ok
:
""
,
ok
:
""
,
msg
:
{
required
:
"6-16位"
}
msg
:
{
required
:
"6-16位"
}
...
...
templates/jasset/host_list.html
View file @
ce6494ba
...
@@ -68,7 +68,7 @@
...
@@ -68,7 +68,7 @@
<td
class=
"text-center"
name=
"j_port"
>
{{ post.port }}
</td>
<td
class=
"text-center"
name=
"j_port"
>
{{ post.port }}
</td>
<td
class=
"text-center"
name=
"j_type"
>
{{ login_types|get_item:post.login_type }}
</td>
<td
class=
"text-center"
name=
"j_type"
>
{{ login_types|get_item:post.login_type }}
</td>
<td
class=
"text-center"
name=
"j_idc"
>
{{ post.idc.name }}
</td>
<td
class=
"text-center"
name=
"j_idc"
>
{{ post.idc.name }}
</td>
<td
class=
"text-center"
name=
"j_group"
>
{
% for group in post.bis_group.all|filter_private %} {{ group }} {% endfor %
}
</td>
<td
class=
"text-center"
name=
"j_group"
>
{
{ post.bis_group.all | group_str2 }
}
</td>
<td
class=
"text-center"
name=
"j_active"
>
{{ post.is_active|bool2str }}
</td>
<td
class=
"text-center"
name=
"j_active"
>
{{ post.is_active|bool2str }}
</td>
<td
class=
"text-center"
>
{{ post.date_added|date:"Y-m-d H:i:s" }}
</td>
<td
class=
"text-center"
>
{{ post.date_added|date:"Y-m-d H:i:s" }}
</td>
<td
class=
"text-center"
name=
"j_comment"
>
{{ post.comment }}
</td>
<td
class=
"text-center"
name=
"j_comment"
>
{{ post.comment }}
</td>
...
...
templates/jasset/host_search.html
View file @
ce6494ba
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
<td
class=
"text-center"
name=
"j_port"
>
{{ post.port }}
</td>
<td
class=
"text-center"
name=
"j_port"
>
{{ post.port }}
</td>
<td
class=
"text-center"
name=
"j_type"
>
{{ login_types|get_item:post.login_type }}
</td>
<td
class=
"text-center"
name=
"j_type"
>
{{ login_types|get_item:post.login_type }}
</td>
<td
class=
"text-center"
name=
"j_idc"
>
{{ post.idc.name }}
</td>
<td
class=
"text-center"
name=
"j_idc"
>
{{ post.idc.name }}
</td>
<td
class=
"text-center"
name=
"j_group"
>
{
% for group in post.bis_group.all|filter_private %} {{ group }} {% endfor %
}
</td>
<td
class=
"text-center"
name=
"j_group"
>
{
{ post.bis_group.all | group_str2 }
}
</td>
<td
class=
"text-center"
name=
"j_active"
>
{{ post.is_active|bool2str }}
</td>
<td
class=
"text-center"
name=
"j_active"
>
{{ post.is_active|bool2str }}
</td>
<td
class=
"text-center"
>
{{ post.date_added|date:"Y-m-d H:i:s" }}
</td>
<td
class=
"text-center"
>
{{ post.date_added|date:"Y-m-d H:i:s" }}
</td>
<td
class=
"text-center"
name=
"j_comment"
>
{{ post.comment }}
</td>
<td
class=
"text-center"
name=
"j_comment"
>
{{ post.comment }}
</td>
...
...
templates/jasset/idc_detail.html
View file @
ce6494ba
...
@@ -57,7 +57,7 @@
...
@@ -57,7 +57,7 @@
<td
class=
"text-center"
name=
"j_port"
>
{{ post.port }}
</td>
<td
class=
"text-center"
name=
"j_port"
>
{{ post.port }}
</td>
<td
class=
"text-center"
name=
"j_type"
>
{{ login_types|get_item:post.login_type }}
</td>
<td
class=
"text-center"
name=
"j_type"
>
{{ login_types|get_item:post.login_type }}
</td>
<td
class=
"text-center"
name=
"j_idc"
>
{{ post.idc.name }}
</td>
<td
class=
"text-center"
name=
"j_idc"
>
{{ post.idc.name }}
</td>
<td
class=
"text-center"
name=
"j_group"
>
{
% for group in post.bis_group.all|filter_private %} {{ group }} {% endfor %
}
</td>
<td
class=
"text-center"
name=
"j_group"
>
{
{ post.bis_group.all | group_str2 }
}
</td>
<td
class=
"text-center"
name=
"j_active"
>
{{ post.is_active|bool2str }}
</td>
<td
class=
"text-center"
name=
"j_active"
>
{{ post.is_active|bool2str }}
</td>
<td
class=
"text-center"
>
{{ post.date_added|date:"Y-m-d H:i:s" }}
</td>
<td
class=
"text-center"
>
{{ post.date_added|date:"Y-m-d H:i:s" }}
</td>
<td
class=
"text-center"
name=
"j_comment"
>
{{ post.comment }}
</td>
<td
class=
"text-center"
name=
"j_comment"
>
{{ post.comment }}
</td>
...
...
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