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
e38fb599
Commit
e38fb599
authored
Nov 02, 2014
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sql使用mysql models来完成
parent
765ac5e7
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
31 deletions
+21
-31
jumpserver.py
jumpserver.py
+20
-30
models.py
webroot/AutoSa/UserManage/models.py
+1
-1
No files found.
jumpserver.py
View file @
e38fb599
...
@@ -22,7 +22,7 @@ cur_dir = os.path.dirname(__file__)
...
@@ -22,7 +22,7 @@ cur_dir = os.path.dirname(__file__)
sys
.
path
.
append
(
'
%
s/webroot/AutoSa/'
%
cur_dir
)
sys
.
path
.
append
(
'
%
s/webroot/AutoSa/'
%
cur_dir
)
os
.
environ
[
'DJANGO_SETTINGS_MODULE'
]
=
'AutoSa.settings'
os
.
environ
[
'DJANGO_SETTINGS_MODULE'
]
=
'AutoSa.settings'
from
UserManage.models
import
User
,
Log
s
from
UserManage.models
import
User
,
Logs
,
Asset
s
cf
=
ConfigParser
.
ConfigParser
()
cf
=
ConfigParser
.
ConfigParser
()
...
@@ -118,16 +118,16 @@ def connect(host, port, user, password):
...
@@ -118,16 +118,16 @@ def connect(host, port, user, password):
log_date_dir
=
'
%
s/
%
s'
%
(
log_dir
,
time
.
strftime
(
'
%
Y
%
m
%
d'
))
log_date_dir
=
'
%
s/
%
s'
%
(
log_dir
,
time
.
strftime
(
'
%
Y
%
m
%
d'
))
if
not
os
.
path
.
isdir
(
log_date_dir
):
if
not
os
.
path
.
isdir
(
log_date_dir
):
os
.
mkdir
(
log_date_dir
)
os
.
mkdir
(
log_date_dir
)
structtime_
now
=
time
.
localtime
()
structtime_
start
=
time
.
localtime
()
datetime_
now
=
time
.
strftime
(
'
%
Y
%
m
%
d
%
H
%
M
%
S'
,
structtime_now
)
datetime_
start
=
time
.
strftime
(
'
%
Y
%
m
%
d
%
H
%
M
%
S'
,
structtime_start
)
logtime_
now
=
time
.
strftime
(
'
%
Y/
%
m/
%
d
%
H:
%
M:
%
S'
,
structtime_now
)
logtime_
start
=
time
.
strftime
(
'
%
Y/
%
m/
%
d
%
H:
%
M:
%
S'
,
structtime_start
)
timestamp_
now
=
int
(
time
.
mktime
(
structtime_now
))
timestamp_
start
=
int
(
time
.
mktime
(
structtime_start
))
logfile_name
=
"
%
s/
%
s_
%
s_
%
s"
%
(
log_date_dir
,
host
,
user
,
datetime_
now
)
logfile_name
=
"
%
s/
%
s_
%
s_
%
s"
%
(
log_date_dir
,
host
,
user
,
datetime_
start
)
logfile
=
open
(
logfile_name
,
'a'
)
logfile
=
open
(
logfile_name
,
'a'
)
log
=
Logs
(
user
=
user
,
host
=
host
,
logfile
=
logfile_name
,
start_time
=
timestamp_
now
)
log
=
Logs
(
user
=
user
,
host
=
host
,
logfile
=
logfile_name
,
start_time
=
timestamp_
start
)
log
.
save
()
log
.
save
()
logfile
.
write
(
'
\n
%
s
\n
'
%
logtime_
now
)
logfile
.
write
(
'
\n
%
s
\n
'
%
logtime_
start
)
try
:
try
:
global
foo
global
foo
foo
=
pxssh
.
pxssh
()
foo
=
pxssh
.
pxssh
()
...
@@ -136,6 +136,7 @@ def connect(host, port, user, password):
...
@@ -136,6 +136,7 @@ def connect(host, port, user, password):
foo
.
sendline
(
''
)
foo
.
sendline
(
''
)
signal
.
signal
(
signal
.
SIGWINCH
,
sigwinch_passthrough
)
signal
.
signal
(
signal
.
SIGWINCH
,
sigwinch_passthrough
)
foo
.
interact
(
escape_character
=
chr
(
28
))
foo
.
interact
(
escape_character
=
chr
(
28
))
logfile
.
write
(
'
\n
%
s'
%
time
.
strftime
(
'
%
Y/
%
m/
%
d
%
H:
%
M:
%
S'
))
log
.
finish
=
1
log
.
finish
=
1
log
.
end_time
=
int
(
time
.
time
())
log
.
end_time
=
int
(
time
.
time
())
log
.
save
()
log
.
save
()
...
@@ -154,36 +155,25 @@ def ip_all_select(username):
...
@@ -154,36 +155,25 @@ def ip_all_select(username):
"""select all the server of the user can control."""
"""select all the server of the user can control."""
ip_all
=
[]
ip_all
=
[]
ip_all_dict
=
{}
ip_all_dict
=
{}
db
,
cursor
=
connect_db
(
db_user
,
db_password
,
db_db
,
db_host
,
db_port
)
user
=
User
.
objects
.
get
(
username
=
username
)
cursor
.
execute
(
'select t2.ip, t2.comment from
%
s t1,
%
s t2,
%
s t3 where t1.username="
%
s" and t1.id=t3.uid_id and t2.id = t3.aid_id;'
%
all_assets_user
=
user
.
assetsuser_set
.
all
()
(
user_table
,
assets_table
,
assets_user_table
,
username
))
for
assets_user
in
all_assets_user
:
ip_all_record
=
cursor
.
fetchall
()
ip_all
.
append
(
assets_user
.
aid
.
ip
)
if
ip_all_record
:
ip_all_dict
[
assets_user
.
aid
.
ip
]
=
assets_user
.
aid
.
comment
for
record
in
ip_all_record
:
ip_all
.
append
(
record
[
0
])
ip_all_dict
[
record
[
0
]]
=
record
[
1
]
db
.
close
()
return
ip_all
,
ip_all_dict
return
ip_all
,
ip_all_dict
def
sth_select
(
username
=
''
,
ip
=
''
):
def
sth_select
(
username
=
''
,
ip
=
''
):
"""if username: return password elif ip return port"""
"""if username: return password elif ip return port"""
db
,
cursor
=
connect_db
(
db_user
,
db_password
,
db_db
,
db_host
,
db_port
)
if
username
:
if
username
:
cursor
.
execute
(
'select ldap_password from
%
s where username="
%
s"'
%
(
user_table
,
username
))
user
=
User
.
objects
.
get
(
username
=
username
)
try
:
password
=
user
.
password
password
=
cursor
.
fetchone
()[
0
]
except
IndexError
:
password
=
''
db
.
close
()
return
password
return
password
if
ip
:
if
ip
:
cursor
.
execute
(
'select port from
%
s where ip="
%
s"'
%
(
assets_table
,
ip
))
asset
=
Assets
.
objects
.
get
(
ip
=
ip
)
try
:
port
=
asset
.
port
port
=
int
(
cursor
.
fetchone
()[
0
])
except
IndexError
:
port
=
22
db
.
close
()
return
port
return
port
return
None
return
None
...
...
webroot/AutoSa/UserManage/models.py
View file @
e38fb599
...
@@ -29,7 +29,7 @@ class Logs(models.Model):
...
@@ -29,7 +29,7 @@ class Logs(models.Model):
logfile
=
models
.
CharField
(
max_length
=
1000
)
logfile
=
models
.
CharField
(
max_length
=
1000
)
finish
=
models
.
SmallIntegerField
(
max_length
=
4
,
default
=
0
)
finish
=
models
.
SmallIntegerField
(
max_length
=
4
,
default
=
0
)
start_time
=
models
.
IntegerField
()
start_time
=
models
.
IntegerField
()
end_time
=
models
.
IntegerField
()
end_time
=
models
.
IntegerField
(
default
=
0
)
def
__unicode__
(
self
):
def
__unicode__
(
self
):
return
self
.
logfile
return
self
.
logfile
...
...
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