Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gjl2004yn
jumpserver
提交
2f804214
J
jumpserver
项目概览
gjl2004yn
/
jumpserver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jumpserver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2f804214
编写于
3月 23, 2021
作者:
X
xinwen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 授权树节点排序
上级
06a4e0d3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
7 deletion
+15
-7
apps/perms/utils/asset/user_permission.py
apps/perms/utils/asset/user_permission.py
+15
-7
未找到文件。
apps/perms/utils/asset/user_permission.py
浏览文件 @
2f804214
...
...
@@ -488,11 +488,12 @@ class UserGrantedAssetsQueryUtils(UserGrantedUtilsBase):
if
granted_status
==
NodeFrom
.
granted
:
assets
=
Asset
.
objects
.
order_by
().
filter
(
nodes__id
=
node
.
id
)
return
assets
elif
granted_status
==
NodeFrom
.
asset
:
return
self
.
_get_indirect_granted_node_assets
(
node
.
id
)
assets
=
self
.
_get_indirect_granted_node_assets
(
node
.
id
)
else
:
return
Asset
.
objects
.
none
()
assets
=
Asset
.
objects
.
none
()
assets
=
assets
.
order_by
(
'hostname'
)
return
assets
def
_get_indirect_granted_node_assets
(
self
,
id
)
->
AssetQuerySet
:
assets
=
Asset
.
objects
.
order_by
().
filter
(
nodes__id
=
id
).
distinct
()
&
self
.
get_direct_granted_assets
()
...
...
@@ -538,6 +539,10 @@ class UserGrantedAssetsQueryUtils(UserGrantedUtilsBase):
class
UserGrantedNodesQueryUtils
(
UserGrantedUtilsBase
):
def
sort
(
self
,
nodes
):
nodes
=
sorted
(
nodes
,
key
=
lambda
x
:
x
.
value
)
return
nodes
def
get_node_children
(
self
,
key
):
if
not
key
:
return
self
.
get_top_level_nodes
()
...
...
@@ -545,11 +550,13 @@ class UserGrantedNodesQueryUtils(UserGrantedUtilsBase):
node
=
PermNode
.
objects
.
get
(
key
=
key
)
granted_status
=
node
.
get_granted_status
(
self
.
user
)
if
granted_status
==
NodeFrom
.
granted
:
return
PermNode
.
objects
.
filter
(
parent_key
=
key
)
nodes
=
PermNode
.
objects
.
filter
(
parent_key
=
key
)
elif
granted_status
in
(
NodeFrom
.
asset
,
NodeFrom
.
child
):
return
self
.
get_indirect_granted_node_children
(
key
)
nodes
=
self
.
get_indirect_granted_node_children
(
key
)
else
:
return
PermNode
.
objects
.
none
()
nodes
=
PermNode
.
objects
.
none
()
nodes
=
self
.
sort
(
nodes
)
return
nodes
def
get_indirect_granted_node_children
(
self
,
key
):
"""
...
...
@@ -571,7 +578,8 @@ class UserGrantedNodesQueryUtils(UserGrantedUtilsBase):
def
get_top_level_nodes
(
self
):
nodes
=
self
.
get_special_nodes
()
nodes
.
extend
(
self
.
get_indirect_granted_node_children
(
''
))
real_nodes
=
self
.
get_indirect_granted_node_children
(
''
)
nodes
.
extend
(
self
.
sort
(
real_nodes
))
return
nodes
def
get_ungrouped_node
(
self
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录