Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gjl2004yn
jumpserver
提交
c389c5f5
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,发现更多精彩内容 >>
提交
c389c5f5
编写于
11月 26, 2020
作者:
X
xinwen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(perms): 新建授权时动态用户可能推送不成功
上级
2aefecec
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
2 deletion
+28
-2
apps/assets/signals_handler.py
apps/assets/signals_handler.py
+3
-0
apps/assets/tasks/push_system_user.py
apps/assets/tasks/push_system_user.py
+25
-2
未找到文件。
apps/assets/signals_handler.py
浏览文件 @
c389c5f5
...
...
@@ -78,6 +78,7 @@ def on_system_user_update(instance: SystemUser, created, **kwargs):
@
receiver
(
m2m_changed
,
sender
=
SystemUser
.
assets
.
through
)
@
on_transaction_commit
def
on_system_user_assets_change
(
instance
,
action
,
model
,
pk_set
,
**
kwargs
):
"""
当系统用户和资产关系发生变化时,应该重新推送系统用户到新添加的资产中
...
...
@@ -96,6 +97,7 @@ def on_system_user_assets_change(instance, action, model, pk_set, **kwargs):
@
receiver
(
m2m_changed
,
sender
=
SystemUser
.
users
.
through
)
@
on_transaction_commit
def
on_system_user_users_change
(
sender
,
instance
:
SystemUser
,
action
,
model
,
pk_set
,
reverse
,
**
kwargs
):
"""
当系统用户和用户关系发生变化时,应该重新推送系统用户资产中
...
...
@@ -117,6 +119,7 @@ def on_system_user_users_change(sender, instance: SystemUser, action, model, pk_
@
receiver
(
m2m_changed
,
sender
=
SystemUser
.
nodes
.
through
)
@
on_transaction_commit
def
on_system_user_nodes_change
(
sender
,
instance
=
None
,
action
=
None
,
model
=
None
,
pk_set
=
None
,
**
kwargs
):
"""
当系统用户和节点关系发生变化时,应该将节点下资产关联到新的系统用户上
...
...
apps/assets/tasks/push_system_user.py
浏览文件 @
c389c5f5
...
...
@@ -2,13 +2,13 @@
from
itertools
import
groupby
from
celery
import
shared_task
from
common.db.utils
import
get_object_if_need
,
get_objects
_if_need
,
get_objects
from
common.db.utils
import
get_object_if_need
,
get_objects
from
django.utils.translation
import
ugettext
as
_
from
django.db.models
import
Empty
from
common.utils
import
encrypt_password
,
get_logger
from
assets.models
import
SystemUser
,
Asset
from
orgs.utils
import
org_aware_func
from
orgs.utils
import
org_aware_func
,
tmp_to_root_org
from
.
import
const
from
.utils
import
clean_ansible_task_hosts
,
group_asset_by_platform
...
...
@@ -229,7 +229,11 @@ def push_system_user_util(system_user, assets, task_name, username=None):
@
shared_task
(
queue
=
"ansible"
)
@
tmp_to_root_org
()
def
push_system_user_to_assets_manual
(
system_user
,
username
=
None
):
"""
将系统用户推送到与它关联的所有资产上
"""
system_user
=
get_object_if_need
(
SystemUser
,
system_user
)
assets
=
system_user
.
get_related_assets
()
task_name
=
_
(
"Push system users to assets: {}"
).
format
(
system_user
.
name
)
...
...
@@ -237,7 +241,11 @@ def push_system_user_to_assets_manual(system_user, username=None):
@
shared_task
(
queue
=
"ansible"
)
@
tmp_to_root_org
()
def
push_system_user_a_asset_manual
(
system_user
,
asset
,
username
=
None
):
"""
将系统用户推送到一个资产上
"""
if
username
is
None
:
username
=
system_user
.
username
task_name
=
_
(
"Push system users to asset: {}({}) => {}"
).
format
(
...
...
@@ -247,10 +255,25 @@ def push_system_user_a_asset_manual(system_user, asset, username=None):
@
shared_task
(
queue
=
"ansible"
)
@
tmp_to_root_org
()
def
push_system_user_to_assets
(
system_user_id
,
assets_id
,
username
=
None
):
"""
推送系统用户到指定的若干资产上
"""
system_user
=
SystemUser
.
objects
.
get
(
id
=
system_user_id
)
assets
=
get_objects
(
Asset
,
assets_id
)
task_name
=
_
(
"Push system users to assets: {}"
).
format
(
system_user
.
name
)
if
username
is
None
and
system_user
.
username_same_with_user
:
# 动态系统用户,把与系统用户关联的所有用户推送到新关联的资产上
usernames
=
system_user
.
users
.
all
().
values_list
(
'username'
,
flat
=
True
).
distinct
()
ret
=
[]
for
username
in
usernames
:
ret
.
append
(
push_system_user_util
(
system_user
,
assets
,
task_name
,
username
=
username
)
)
return
ret
return
push_system_user_util
(
system_user
,
assets
,
task_name
,
username
=
username
)
# @shared_task
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录