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
affd9aad
Commit
affd9aad
authored
Dec 10, 2015
by
ibuler
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of git.coding.net:jumpserver/jumpserver into dev
parents
23051a4a
e9fe871a
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
10 deletions
+31
-10
views.py
jperm/views.py
+31
-10
No files found.
jperm/views.py
View file @
affd9aad
...
@@ -3,18 +3,21 @@
...
@@ -3,18 +3,21 @@
from
django.db.models
import
Q
from
django.db.models
import
Q
from
paramiko
import
SSHException
from
paramiko
import
SSHException
from
jperm.perm_api
import
*
from
jperm.perm_api
import
*
from
juser.user_api
import
gen_ssh_key
from
juser.models
import
User
,
UserGroup
from
juser.models
import
User
,
UserGroup
from
jasset.models
import
Asset
,
AssetGroup
from
jasset.models
import
Asset
,
AssetGroup
from
jperm.models
import
PermRole
,
PermRule
,
PermSudo
,
PermPush
from
jperm.models
import
PermRole
,
PermRule
,
PermSudo
,
PermPush
from
jumpserver.models
import
Setting
from
jumpserver.models
import
Setting
from
jperm.utils
import
updates_dict
,
gen_keys
,
get_rand_pas
s
from
jperm.utils
import
gen_key
s
from
jperm.ansible_api
import
MyTask
from
jperm.ansible_api
import
MyTask
from
jperm.perm_api
import
get_role_info
,
get_role_push_host
from
jperm.perm_api
import
get_role_info
,
get_role_push_host
from
jumpserver.api
import
my_render
,
get_object
,
CRYPTOR
from
jumpserver.api
import
my_render
,
get_object
,
CRYPTOR
# 设置PERM APP Log
from
jumpserver.settings
import
LOG_LEVEL
logger
=
set_log
(
LOG_LEVEL
,
filename
=
'jumpserver_perm.log'
)
@require_role
(
'admin'
)
@require_role
(
'admin'
)
def
perm_rule_list
(
request
):
def
perm_rule_list
(
request
):
...
@@ -89,6 +92,7 @@ def perm_rule_add(request):
...
@@ -89,6 +92,7 @@ def perm_rule_add(request):
try
:
try
:
rule
=
get_object
(
PermRule
,
name
=
rule_name
)
rule
=
get_object
(
PermRule
,
name
=
rule_name
)
if
rule
:
if
rule
:
raise
ServerError
(
u'授权规则
%
s 已存在'
%
rule_name
)
raise
ServerError
(
u'授权规则
%
s 已存在'
%
rule_name
)
...
@@ -106,8 +110,6 @@ def perm_rule_add(request):
...
@@ -106,8 +110,6 @@ def perm_rule_add(request):
# 获取需要授权的用户列表
# 获取需要授权的用户列表
users_obj
=
[
User
.
objects
.
get
(
id
=
user_id
)
for
user_id
in
users_select
]
users_obj
=
[
User
.
objects
.
get
(
id
=
user_id
)
for
user_id
in
users_select
]
user_groups_obj
=
[
UserGroup
.
objects
.
get
(
id
=
group_id
)
for
group_id
in
user_groups_select
]
user_groups_obj
=
[
UserGroup
.
objects
.
get
(
id
=
group_id
)
for
group_id
in
user_groups_select
]
# group_users_obj = [user for user in [group.user_set.all() for group in user_groups_obj]]
# calc_users = set(group_users_obj) | set(users_obj)
# 获取授予的角色列表
# 获取授予的角色列表
roles_obj
=
[
PermRole
.
objects
.
get
(
id
=
role_id
)
for
role_id
in
roles_select
]
roles_obj
=
[
PermRole
.
objects
.
get
(
id
=
role_id
)
for
role_id
in
roles_select
]
...
@@ -304,20 +306,31 @@ def perm_role_delete(request):
...
@@ -304,20 +306,31 @@ def perm_role_delete(request):
if
request
.
method
==
"POST"
:
if
request
.
method
==
"POST"
:
# 获取参数删除的role对象
# 获取参数删除的role对象
role_id
=
request
.
POST
.
get
(
"id"
)
role_id
=
request
.
POST
.
get
(
"id"
)
role
=
PermRole
.
objects
.
get
(
id
=
role_id
)
role
=
get_object
(
PermRole
,
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
]
logger
.
debug
(
u"delete role
%
s - delete_assets:
%
s"
%
(
role
.
name
,
recycle_assets
))
if
recycle_assets
:
recycle_resource
=
gen_resource
(
recycle_assets
)
task
=
MyTask
(
recycle_resource
)
msg
=
task
.
del_user
(
get_object
(
PermRole
,
id
=
role_id
)
.
name
)
logger
.
info
(
u"delete role
%
s - execute delete user:
%
s"
%
(
role
.
name
,
msg
))
# TODO: 判断返回结果,处理异常
# 删除存储的秘钥,以及目录
# 删除存储的秘钥,以及目录
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
)
# 数据库里删除记录
logger
.
info
(
u"delete role
%
s - delete role key directory:
%
s"
%
(
role
.
name
,
role_key
))
# 数据库里删除记录 TODO: 判断返回结果,处理异常
role
.
delete
()
role
.
delete
()
return
HttpResponse
(
u"删除角色:
%
s"
%
role
.
name
)
return
HttpResponse
(
u"删除角色:
%
s"
%
role
.
name
)
else
:
else
:
return
HttpResponse
(
u"不支持该操作"
)
return
HttpResponse
(
u"不支持该操作"
)
@require_role
(
'admin'
)
@require_role
(
'admin'
)
def
perm_role_detail
(
request
):
def
perm_role_detail
(
request
):
"""
"""
...
@@ -609,16 +622,24 @@ def perm_sudo_delete(request):
...
@@ -609,16 +622,24 @@ 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
(
','
)
assets
=
[]
# 仅有推送的角色才回收
assets
=
[
get_object
(
Asset
,
id
=
asset_id
)
for
asset_id
in
asset_ids
]
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
=
MyTask
(
recycle_resource
)
# TODO: 判断返回结果,处理异常
msg
=
task
.
del_user
(
get_object
(
PermRole
,
id
=
role_id
)
.
name
)
for
asset_id
in
asset_ids
:
for
asset_id
in
asset_ids
:
asset
=
get_object
(
Asset
,
id
=
asset_id
)
asset
=
get_object
(
Asset
,
id
=
asset_id
)
assets
.
append
(
asset
)
assets
.
append
(
asset
)
role
=
get_object
(
PermRole
,
id
=
role_id
)
role
=
get_object
(
PermRole
,
id
=
role_id
)
PermPush
.
objects
.
filter
(
asset
=
asset
,
role
=
role
)
.
delete
()
PermPush
.
objects
.
filter
(
asset
=
asset
,
role
=
role
)
.
delete
()
res
=
gen_resource
(
assets
)
task
=
MyTask
(
res
)
return
HttpResponse
(
'删除成功'
)
return
HttpResponse
(
'删除成功'
)
...
...
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