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
408e4a54
Commit
408e4a54
authored
Mar 25, 2015
by
halcyon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bugs
parent
e3b2be02
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
58 additions
and
32 deletions
+58
-32
urls.py
jasset/urls.py
+0
-2
views.py
jasset/views.py
+32
-16
api.py
jumpserver/api.py
+15
-10
views.py
jumpserver/views.py
+10
-3
host_list.html
templates/jasset/host_list.html
+1
-1
No files found.
jasset/urls.py
View file @
408e4a54
...
...
@@ -22,5 +22,4 @@ urlpatterns = patterns('',
url
(
r'^host_del/(\w+)/$'
,
host_del
),
url
(
r'^host_edit/$'
,
host_edit
),
url
(
r'^host_edit/batch/$'
,
batch_host_edit
),
url
(
r'^test/$'
,
test
),
)
\ No newline at end of file
jasset/views.py
View file @
408e4a54
...
...
@@ -3,12 +3,13 @@
import
ast
from
django.db.models
import
Q
from
django.http
import
Http404
from
django.http
import
HttpResponseRedirect
from
django.template
import
RequestContext
from
django.shortcuts
import
render_to_response
from
models
import
IDC
,
Asset
,
BisGroup
from
juser.models
import
UserGroup
,
DEPT
,
User
from
juser.models
import
UserGroup
,
DEPT
from
connect
import
PyCrypt
,
KEY
from
jlog.models
import
Log
from
jumpserver.views
import
jasset_host_edit
,
pages
...
...
@@ -81,13 +82,9 @@ def add_host(request):
j_comment
=
request
.
POST
.
get
(
'j_comment'
)
j_dept
=
request
.
POST
.
getlist
(
'j_dept'
)
try
:
if
is_group_admin
(
request
)
and
not
validate
(
request
,
asset_group
=
j_group
):
print
validate
(
request
,
asset_group
=
j_group
),
'hello'
emg
=
u'滚Y'
raise
RaiseError
(
emg
)
except
RaiseError
:
pass
if
is_group_admin
(
request
)
and
not
validate
(
request
,
asset_group
=
j_group
,
edept
=
j_dept
):
emg
=
u'添加失败,您无权操作!'
return
render_to_response
(
'jasset/host_add.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
if
Asset
.
objects
.
filter
(
ip
=
str
(
j_ip
)):
emg
=
u'该IP
%
s 已存在!'
%
j_ip
...
...
@@ -145,6 +142,7 @@ def batch_host_edit(request):
j_id
=
"editable["
+
str
(
i
)
+
"][j_id]"
j_ip
=
"editable["
+
str
(
i
)
+
"][j_ip]"
j_port
=
"editable["
+
str
(
i
)
+
"][j_port]"
j_dept
=
"editable["
+
str
(
i
)
+
"][j_dept]"
j_idc
=
"editable["
+
str
(
i
)
+
"][j_idc]"
j_type
=
"editable["
+
str
(
i
)
+
"][j_type]"
j_group
=
"editable["
+
str
(
i
)
+
"][j_group]"
...
...
@@ -154,11 +152,18 @@ def batch_host_edit(request):
j_id
=
request
.
POST
.
get
(
j_id
)
.
strip
()
j_ip
=
request
.
POST
.
get
(
j_ip
)
.
strip
()
j_port
=
request
.
POST
.
get
(
j_port
)
.
strip
()
j_dept
=
request
.
POST
.
getlist
(
j_dept
)
.
strip
()
j_idc
=
request
.
POST
.
get
(
j_idc
)
.
strip
()
j_type
=
request
.
POST
.
get
(
j_type
)
.
strip
()
j_group
=
request
.
POST
.
getlist
(
j_group
)
j_active
=
request
.
POST
.
get
(
j_active
)
.
strip
()
j_comment
=
request
.
POST
.
get
(
j_comment
)
.
strip
()
print
j_dept
,
j_group
#
# if is_group_admin(request) and not validate(request, asset=[j_id]):
# emg = u'删除失败,您无权操作!'
# print 'hehe'
# return HttpResponseRedirect('/jasset/host_list/')
if
j_type
==
'M'
:
j_user
=
"editable["
+
str
(
i
)
+
"][j_user]"
...
...
@@ -166,9 +171,9 @@ def batch_host_edit(request):
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
)
jasset_host_edit
(
j_id
,
j_ip
,
j_idc
,
j_port
,
j_type
,
j_group
,
j_
dept
,
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
)
jasset_host_edit
(
j_id
,
j_ip
,
j_idc
,
j_port
,
j_type
,
j_group
,
j_
dept
,
j_
active
,
j_comment
)
return
render_to_response
(
'jasset/host_list.html'
)
...
...
@@ -207,11 +212,17 @@ def host_del(request, offset):
for
i
in
range
(
int
(
len_list
)):
key
=
"id_list["
+
str
(
i
)
+
"]"
jid
=
request
.
POST
.
get
(
key
)
if
is_group_admin
(
request
)
and
not
validate
(
request
,
asset
=
[
jid
]):
emg
=
u'删除失败,您无权操作!'
return
HttpResponseRedirect
(
'/jasset/host_list/'
)
a
=
Asset
.
objects
.
get
(
id
=
jid
)
.
ip
Asset
.
objects
.
filter
(
id
=
jid
)
.
delete
()
BisGroup
.
objects
.
filter
(
name
=
a
)
.
delete
()
else
:
jid
=
int
(
offset
)
if
is_group_admin
(
request
)
and
not
validate
(
request
,
asset
=
[
jid
]):
emg
=
u'删除失败,您无权操作!'
return
HttpResponseRedirect
(
'/jasset/host_list/'
)
a
=
Asset
.
objects
.
get
(
id
=
jid
)
.
ip
BisGroup
.
objects
.
filter
(
name
=
a
)
.
delete
()
Asset
.
objects
.
filter
(
id
=
jid
)
.
delete
()
...
...
@@ -243,8 +254,12 @@ def host_edit(request):
j_active
=
request
.
POST
.
get
(
'j_active'
)
j_comment
=
request
.
POST
.
get
(
'j_comment'
)
j_idc
=
IDC
.
objects
.
get
(
name
=
j_idc
)
if
is_group_admin
(
request
)
and
not
validate
(
request
,
asset_group
=
j_group
,
edept
=
j_dept
):
emg
=
u'修改失败,您无权操作!'
return
render_to_response
(
'jasset/host_edit.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
for
group
in
j_group
:
print
group
c
=
BisGroup
.
objects
.
get
(
name
=
group
)
groups
.
append
(
c
)
...
...
@@ -382,8 +397,12 @@ def add_group(request):
j_dept
=
request
.
POST
.
get
(
'j_dept'
)
j_hosts
=
request
.
POST
.
getlist
(
'j_hosts'
)
j_comment
=
request
.
POST
.
get
(
'j_comment'
)
j_dept
=
DEPT
.
objects
.
get
(
name
=
j_dept
)
if
is_group_admin
(
request
)
and
not
validate
(
request
,
asset
=
j_hosts
,
edept
=
[
j_dept
]):
emg
=
u'添加失败,您无权操作!'
return
render_to_response
(
'jasset/group_add.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
j_dept
=
DEPT
.
objects
.
get
(
name
=
j_dept
)
if
BisGroup
.
objects
.
filter
(
name
=
j_group
):
emg
=
u'该主机组已存在!'
return
render_to_response
(
'jasset/group_add.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
...
...
@@ -540,7 +559,3 @@ def host_search(request):
contact_list
,
p
,
contacts
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
posts
,
request
)
return
render_to_response
(
'jasset/host_search.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
\ No newline at end of file
def
test
(
request
):
return
render_to_response
(
'jasset/test.html'
,
locals
())
jumpserver/api.py
View file @
408e4a54
...
...
@@ -299,8 +299,12 @@ def asset_perm_api(asset):
return
user_permed_list
def
validate
(
request
,
user_group
=
None
,
user
=
None
,
asset_group
=
None
,
asset
=
None
):
def
validate
(
request
,
user_group
=
None
,
user
=
None
,
asset_group
=
None
,
asset
=
None
,
edept
=
None
):
dept
=
get_session_user_dept
(
request
)[
1
]
if
edept
:
if
dept
.
name
!=
edept
[
0
]:
return
False
if
user_group
:
dept_user_groups
=
dept
.
usergroup_set
.
all
()
user_groups
=
[]
...
...
@@ -321,24 +325,24 @@ def validate(request, user_group=None, user=None, asset_group=None, asset=None):
if
asset_group
:
dept_asset_groups
=
dept
.
bisgroup_set
.
all
()
asset_groups
=
[]
for
asset_group_name
in
asset_group
:
asset_groups
.
extend
(
BisGroup
.
objects
.
filter
(
name
=
asset_group_name
)
)
for
asset_group_name
in
dept_asset_groups
:
asset_groups
.
extend
(
asset_group_name
.
name
)
if
len
(
asset_groups
)
==
0
:
print
'hehe'
return
False
if
not
set
(
asset_groups
)
.
issubset
(
set
(
dept_asset_groups
)):
print
'not in'
if
not
set
(
asset_group
)
.
issubset
(
set
(
asset_groups
)):
return
False
if
asset
:
dept_assets
=
dept
.
asset_set
.
all
()
assets
=
[]
for
asset_id
in
asset
:
assets
.
extend
(
asset_id
)
assets
,
eassets
=
[],
[]
for
asset_id
in
dept_assets
:
eassets
.
append
(
int
(
asset_id
.
id
))
for
i
in
asset
:
assets
.
append
(
int
(
i
))
if
not
set
(
assets
)
.
issubset
(
dept_
assets
):
if
not
set
(
assets
)
.
issubset
(
e
assets
):
return
False
return
True
\ No newline at end of file
jumpserver/views.py
View file @
408e4a54
...
...
@@ -6,6 +6,7 @@ from django.db.models import Count
from
django.shortcuts
import
render_to_response
from
django.template
import
RequestContext
from
jasset.models
import
IDC
from
juser.models
import
DEPT
from
jumpserver.api
import
*
...
...
@@ -84,13 +85,18 @@ def jasset_group_add(name, comment, jtype):
smg
=
u'业务组
%
s添加成功'
%
name
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
=
[]
def
jasset_host_edit
(
j_id
,
j_ip
,
j_idc
,
j_port
,
j_type
,
j_group
,
j_
dept
,
j_
active
,
j_comment
,
j_user
=
''
,
j_password
=
''
):
groups
,
depts
=
[],
[]
is_active
=
{
u'是'
:
'1'
,
u'否'
:
'2'
}
login_types
=
{
'LDAP'
:
'L'
,
'
SSH_KEY'
:
'S'
,
'PASSWORD'
:
'P'
,
'
MAP'
:
'M'
}
login_types
=
{
'LDAP'
:
'L'
,
'MAP'
:
'M'
}
for
group
in
j_group
[
0
]
.
split
():
c
=
BisGroup
.
objects
.
get
(
name
=
group
.
strip
())
groups
.
append
(
c
)
print
j_dept
for
d
in
j_dept
[
0
]
.
split
():
p
=
DEPT
.
objects
.
get
(
name
=
d
.
strip
())
depts
.
append
(
p
)
j_type
=
login_types
[
j_type
]
j_idc
=
IDC
.
objects
.
get
(
name
=
j_idc
)
a
=
Asset
.
objects
.
get
(
id
=
j_id
)
...
...
@@ -112,6 +118,7 @@ def jasset_host_edit(j_id, j_ip, j_idc, j_port, j_type, j_group, j_active, j_com
a
.
comment
=
j_comment
a
.
save
()
a
.
bis_group
=
groups
a
.
dept
=
depts
a
.
save
()
...
...
templates/jasset/host_list.html
View file @
408e4a54
...
...
@@ -69,7 +69,7 @@
<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_idc"
>
{{ post.idc.name }}
</td>
<td
class=
"text-center"
name=
"j_
group
"
>
{{ post.dept.all | group_str2 }}
</td>
<td
class=
"text-center"
name=
"j_
dept
"
>
{{ post.dept.all | group_str2 }}
</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"> {{ post.date_added|date:"Y-m-d H:i:s" }} </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