Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gjl2004yn
jumpserver
提交
477d23ea
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,发现更多精彩内容 >>
提交
477d23ea
编写于
7月 20, 2017
作者:
baltery
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix some bug
上级
61014c74
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
27 addition
and
17 deletion
+27
-17
apps/assets/forms.py
apps/assets/forms.py
+2
-3
apps/assets/models/asset.py
apps/assets/models/asset.py
+1
-1
apps/assets/templates/assets/_system_user.html
apps/assets/templates/assets/_system_user.html
+0
-5
apps/assets/views/system_user.py
apps/assets/views/system_user.py
+10
-0
apps/common/utils.py
apps/common/utils.py
+5
-1
apps/perms/utils.py
apps/perms/utils.py
+9
-7
未找到文件。
apps/assets/forms.py
浏览文件 @
477d23ea
...
...
@@ -70,7 +70,6 @@ class AssetBulkUpdateForm(forms.ModelForm):
required
=
True
,
help_text
=
'* required'
,
label
=
_
(
'Select assets'
),
# choices=[(asset.id, asset.hostname) for asset in Asset.objects.all()],
widget
=
forms
.
SelectMultiple
(
attrs
=
{
'class'
:
'select2'
,
...
...
@@ -182,7 +181,7 @@ class AdminUserForm(forms.ModelForm):
# Form field name can not start with `_`, so redefine it,
password
=
forms
.
CharField
(
widget
=
forms
.
PasswordInput
,
max_length
=
100
,
min_length
=
8
,
strip
=
True
,
required
=
False
,
strip
=
True
,
required
=
False
,
help_text
=
_
(
'If also set private key, use that first'
),
)
# Need use upload private key file except paste private key content
...
...
@@ -239,7 +238,7 @@ class SystemUserForm(forms.ModelForm):
auto_generate_key
=
forms
.
BooleanField
(
initial
=
True
,
required
=
False
)
# Form field name can not start with `_`, so redefine it,
password
=
forms
.
CharField
(
widget
=
forms
.
PasswordInput
,
required
=
False
,
max_length
=
100
,
min_length
=
8
,
strip
=
True
)
max_length
=
100
,
strip
=
True
)
# Need use upload private key file except paste private key content
private_key_file
=
forms
.
FileField
(
required
=
False
)
...
...
apps/assets/models/asset.py
浏览文件 @
477d23ea
...
...
@@ -125,7 +125,7 @@ class Asset(models.Model):
'method'
:
self
.
admin_user
.
become_method
,
'user'
:
self
.
admin_user
.
become_user
,
'pass'
:
self
.
admin_user
.
become_pass
,
}
if
self
.
admin_user
.
become
else
{},
}
if
self
.
admin_user
and
self
.
admin_user
.
become
else
{},
}
class
Meta
:
...
...
apps/assets/templates/assets/_system_user.html
浏览文件 @
477d23ea
...
...
@@ -27,11 +27,6 @@
</div>
</div>
<div
class=
"ibox-content"
>
{% if form.no_field_errors %}
<div
class=
"alert alert-danger"
>
{{ form.non_field_errors }}
</div>
{% endif %}
<form
enctype=
"multipart/form-data"
method=
"post"
class=
"form-horizontal"
action=
""
>
{% csrf_token %}
{% if form.non_field_errors %}
...
...
apps/assets/views/system_user.py
浏览文件 @
477d23ea
...
...
@@ -13,6 +13,8 @@ from django.views.generic.detail import DetailView, SingleObjectMixin
from
..
import
forms
from
..models
import
Asset
,
AssetGroup
,
AdminUser
,
IDC
,
SystemUser
from
..hands
import
AdminUserRequiredMixin
from
perms.utils
import
associate_system_users_and_assets
__all__
=
[
'SystemUserCreateView'
,
'SystemUserUpdateView'
,
'SystemUserDetailView'
,
'SystemUserDeleteView'
,
...
...
@@ -74,6 +76,14 @@ class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView):
kwargs
.
update
(
context
)
return
super
(
SystemUserUpdateView
,
self
).
get_context_data
(
**
kwargs
)
def
form_valid
(
self
,
form
):
response
=
super
(
SystemUserUpdateView
,
self
).
form_valid
(
form
)
system_user
=
self
.
object
assets
=
system_user
.
assets
.
all
()
asset_groups
=
system_user
.
asset_groups
.
all
()
associate_system_users_and_assets
([
system_user
],
assets
,
asset_groups
,
force
=
True
)
return
response
def
get_success_url
(
self
):
success_url
=
reverse_lazy
(
'assets:system-user-detail'
,
kwargs
=
{
'pk'
:
self
.
object
.
pk
})
...
...
apps/common/utils.py
浏览文件 @
477d23ea
...
...
@@ -239,7 +239,11 @@ def ssh_key_gen(length=2048, type='rsa', password=None, username='jumpserver', h
def
validate_ssh_private_key
(
text
):
if
isinstance
(
text
,
bytes
):
text
=
text
.
decode
(
"utf-8"
)
try
:
text
=
text
.
decode
(
"utf-8"
)
except
UnicodeDecodeError
:
return
False
key
=
ssh_key_string_to_obj
(
text
)
if
key
is
None
:
return
False
...
...
apps/perms/utils.py
浏览文件 @
477d23ea
...
...
@@ -235,7 +235,7 @@ def push_system_user(assets, system_user):
return
task
.
id
def
associate_system_users_and_assets
(
system_users
,
assets
,
asset_groups
):
def
associate_system_users_and_assets
(
system_users
,
assets
,
asset_groups
,
force
=
False
):
"""关联系统用户和资产, 目的是保存它们的关系, 然后新加入的资产或系统
用户时,推送系统用户到资产
...
...
@@ -250,12 +250,14 @@ def associate_system_users_and_assets(system_users, assets, asset_groups):
for
system_user
in
system_users
:
assets_need_push
=
[]
if
system_user
.
auto_push
:
assets_need_push
.
extend
(
[
asset
for
asset
in
assets_all
if
asset
not
in
system_user
.
assets
.
all
()
]
)
if
force
:
assets_need_push
=
assets_all
else
:
assets_need_push
.
extend
(
[
asset
for
asset
in
assets_all
if
asset
not
in
system_user
.
assets
.
all
()
]
)
system_user
.
assets
.
add
(
*
(
tuple
(
assets_all
)))
push_system_user
(
assets_need_push
,
system_user
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录