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
58082179
Commit
58082179
authored
Dec 06, 2015
by
yumaojun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1. 用户的批量回收, 角色删除会回收推送的角色
parent
8723d673
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
13 deletions
+31
-13
perm_api.py
jperm/perm_api.py
+8
-8
views.py
jperm/views.py
+22
-4
perm_role_detail.html
templates/jperm/perm_role_detail.html
+1
-1
No files found.
jperm/perm_api.py
View file @
58082179
...
@@ -218,25 +218,25 @@ def get_role_info(role_id, type="all"):
...
@@ -218,25 +218,25 @@ def get_role_info(role_id, type="all"):
"""
"""
# 获取role对应的授权规则
# 获取role对应的授权规则
role_obj
=
PermRole
.
objects
.
get
(
id
=
role_id
)
role_obj
=
PermRole
.
objects
.
get
(
id
=
role_id
)
rule
s
_obj
=
role_obj
.
perm_rule
.
all
()
rule
_push
_obj
=
role_obj
.
perm_rule
.
all
()
# 获取role 对应的用户 和 用户组
# 获取role 对应的用户 和 用户组
# 获取role 对应的主机 和主机组
# 获取role 对应的主机 和主机组
users_obj
=
[]
users_obj
=
[]
assets_obj
=
[]
assets_obj
=
[]
user_groups_obj
=
[]
user_groups_obj
=
[]
asset_groups_obj
=
[]
asset_groups_obj
=
[]
for
rule
in
rules
_obj
:
for
push
in
rule_push
_obj
:
for
user
in
rule
.
user
.
all
():
for
user
in
push
.
user
.
all
():
users_obj
.
append
(
user
)
users_obj
.
append
(
user
)
for
asset
in
rule
.
asset
.
all
():
for
asset
in
push
.
asset
.
all
():
assets_obj
.
append
(
asset
)
assets_obj
.
append
(
asset
)
for
user_group
in
rule
.
user_group
.
all
():
for
user_group
in
push
.
user_group
.
all
():
user_groups_obj
.
append
(
user_group
)
user_groups_obj
.
append
(
user_group
)
for
asset_group
in
rule
.
asset_group
.
all
():
for
asset_group
in
push
.
asset_group
.
all
():
asset_groups_obj
.
append
(
asset_group
)
asset_groups_obj
.
append
(
asset_group
)
if
type
==
"all"
:
if
type
==
"all"
:
return
{
"rules"
:
rule
s
_obj
,
return
{
"rules"
:
rule
_push
_obj
,
"users"
:
users_obj
,
"users"
:
users_obj
,
"user_groups"
:
user_groups_obj
,
"user_groups"
:
user_groups_obj
,
"assets"
:
assets_obj
,
"assets"
:
assets_obj
,
...
@@ -244,7 +244,7 @@ def get_role_info(role_id, type="all"):
...
@@ -244,7 +244,7 @@ def get_role_info(role_id, type="all"):
}
}
elif
type
==
"rule"
:
elif
type
==
"rule"
:
return
rule
s
_obj
return
rule
_push
_obj
elif
type
==
"user"
:
elif
type
==
"user"
:
return
users_obj
return
users_obj
elif
type
==
"user_group"
:
elif
type
==
"user_group"
:
...
...
jperm/views.py
View file @
58082179
...
@@ -297,12 +297,25 @@ def perm_role_delete(request):
...
@@ -297,12 +297,25 @@ def perm_role_delete(request):
role_id
=
request
.
POST
.
get
(
"id"
)
role_id
=
request
.
POST
.
get
(
"id"
)
role
=
PermRole
.
objects
.
get
(
id
=
role_id
)
role
=
PermRole
.
objects
.
get
(
id
=
role_id
)
role_key
=
role
.
key_path
role_key
=
role
.
key_path
# 删除推送到主机上的role
recycle_assets
=
[
push
.
asset
for
push
in
role
.
perm_push
.
all
()
if
push
.
success
]
print
recycle_assets
if
recycle_assets
:
recycle_resource
=
gen_resource
(
recycle_assets
)
task
=
Tasks
(
recycle_resource
)
msg
=
task
.
del_user
(
get_object
(
PermRole
,
id
=
role_id
)
.
name
)
# TODO: 判断返回结果,处理异常
print
msg
# 删除存储的秘钥,以及目录
# 删除存储的秘钥,以及目录
key_files
=
os
.
listdir
(
role_key
)
key_files
=
os
.
listdir
(
role_key
)
for
key_file
in
key_files
:
for
key_file
in
key_files
:
os
.
remove
(
os
.
path
.
join
(
role_key
,
key_file
))
os
.
remove
(
os
.
path
.
join
(
role_key
,
key_file
))
os
.
rmdir
(
role_key
)
os
.
rmdir
(
role_key
)
# 数据库里删除记录
# 数据库里删除记录 TODO: 判断返回结果,处理异常
role
.
delete
()
role
.
delete
()
return
HttpResponse
(
u"删除角色:
%
s"
%
role
.
name
)
return
HttpResponse
(
u"删除角色:
%
s"
%
role
.
name
)
else
:
else
:
...
@@ -585,14 +598,19 @@ def perm_sudo_delete(request):
...
@@ -585,14 +598,19 @@ def perm_sudo_delete(request):
def
perm_role_recycle
(
request
):
def
perm_role_recycle
(
request
):
role_id
=
request
.
GET
.
get
(
'role_id'
)
role_id
=
request
.
GET
.
get
(
'role_id'
)
asset_ids
=
request
.
GET
.
get
(
'asset_id'
)
.
split
(
','
)
asset_ids
=
request
.
GET
.
get
(
'asset_id'
)
.
split
(
','
)
success
=
request
.
GET
.
get
(
"success"
)
print
request
.
GET
print
request
.
GET
if
success
==
"True"
:
assets
=
[
get_object
(
Asset
,
id
=
asset_id
)
for
asset_id
in
asset_ids
]
assets
=
[
get_object
(
Asset
,
id
=
asset_id
)
for
asset_id
in
asset_ids
]
recycle_resource
=
gen_resource
(
assets
)
recycle_assets
=
[]
for
asset
in
assets
:
if
True
in
[
push
.
success
for
push
in
asset
.
perm_push
.
all
()]:
recycle_assets
.
append
(
asset
)
recycle_resource
=
gen_resource
(
recycle_assets
)
task
=
Tasks
(
recycle_resource
)
task
=
Tasks
(
recycle_resource
)
msg
=
task
.
del_user
(
get_object
(
PermRole
,
id
=
role_id
)
.
name
)
msg
=
task
.
del_user
(
get_object
(
PermRole
,
id
=
role_id
)
.
name
)
# TODO: 判断返回结果,处理异常
print
msg
print
msg
for
asset_id
in
asset_ids
:
for
asset_id
in
asset_ids
:
...
...
templates/jperm/perm_role_detail.html
View file @
58082179
...
@@ -198,7 +198,7 @@
...
@@ -198,7 +198,7 @@
{% else %}
{% else %}
<td
class=
"text-center"
style=
"color: #ec4758;cursor: help"
title=
"{{ info.result }}"
>
{{ info.success | yesno:"成功,失败,未知" }}
</td>
<td
class=
"text-center"
style=
"color: #ec4758;cursor: help"
title=
"{{ info.result }}"
>
{{ info.success | yesno:"成功,失败,未知" }}
</td>
{% endif %}
{% endif %}
<td
class=
"text-center"
><a
class=
"fa fa-times del"
href=
"/jperm/role/recycle/?role_id={{ role.id }}&asset_id={{ asset.id }}
&success={{ info.success }}
"
style=
"color: #ec4758;"
></a></td>
<td
class=
"text-center"
><a
class=
"fa fa-times del"
href=
"/jperm/role/recycle/?role_id={{ role.id }}&asset_id={{ asset.id }}"
style=
"color: #ec4758;"
></a></td>
</tr>
</tr>
{% endfor %}
{% endfor %}
</tbody>
</tbody>
...
...
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