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
a143797a
Commit
a143797a
authored
Nov 22, 2015
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改gen_resource api
parent
5f768444
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
42 additions
and
22 deletions
+42
-22
perm_api.py
jperm/perm_api.py
+19
-3
api.py
jumpserver/api.py
+6
-3
asset_add.html
templates/jasset/asset_add.html
+1
-0
perm_rule_add.html
templates/jperm/perm_rule_add.html
+16
-16
No files found.
jperm/perm_api.py
View file @
a143797a
...
...
@@ -132,13 +132,29 @@ def get_group_asset_perm(ob):
return
perm
def
gen_resource
(
ob
,
perm
=
None
):
def
gen_resource
(
ob
,
ex
=
''
,
perm
=
None
):
"""
ob为用户或资产列表或资产queryset
ob为用户或资产列表或资产queryset
, 如果同时输入用户和资产,则获取用户在这些资产上的信息
生成MyInventory需要的 resource文件
"""
res
=
[]
if
isinstance
(
ob
,
User
):
if
isinstance
(
ob
,
User
)
and
isinstance
(
ex
,
(
list
,
QuerySet
)):
if
not
perm
:
perm
=
get_group_user_perm
(
ob
)
for
asset
,
asset_info
in
perm
.
get
(
'asset'
)
.
items
():
if
asset
not
in
ex
:
continue
asset_info
=
get_asset_info
(
asset
)
info
=
{
'hostname'
:
asset
.
hostname
,
'ip'
:
asset
.
ip
,
'port'
:
asset_info
.
get
(
'port'
,
22
)}
try
:
role
=
sorted
(
list
(
perm
.
get
(
'asset'
)
.
get
(
asset
)
.
get
(
'role'
)))[
0
]
except
IndexError
:
continue
info
[
'username'
]
=
role
.
name
info
[
'password'
]
=
role
.
password
info
[
'ssh_key'
]
=
get_role_key
(
ob
,
role
)
res
.
append
(
info
)
elif
isinstance
(
ob
,
User
):
if
not
perm
:
perm
=
get_group_user_perm
(
ob
)
...
...
jumpserver/api.py
View file @
a143797a
...
...
@@ -96,9 +96,12 @@ def get_role_key(user, role):
def
chown
(
path
,
user
,
group
=
''
):
if
not
group
:
group
=
user
uid
=
pwd
.
getpwnam
(
user
)
.
pw_uid
gid
=
pwd
.
getpwnam
(
group
)
.
pwd_gid
os
.
chown
(
path
,
uid
,
gid
)
try
:
uid
=
pwd
.
getpwnam
(
user
)
.
pw_uid
gid
=
pwd
.
getpwnam
(
group
)
.
pw_gid
os
.
chown
(
path
,
uid
,
gid
)
except
KeyError
:
pass
def
page_list_return
(
total
,
current
=
1
):
...
...
templates/jasset/asset_add.html
View file @
a143797a
...
...
@@ -48,6 +48,7 @@
{{ af.ip|bootstrap_horizontal }}
<p
class=
"col-sm-offset-2"
>
Tips: 如果IP地址不填写, IP默认会设置与主机名一致
</p>
<div
class=
"hr-line-dashed"
></div>
<div
class=
"form-group"
>
<label
for=
"j_group"
class=
"col-sm-2 control-label"
>
管理账号
<span
class=
"red-fonts"
>
*
</span></label>
...
...
templates/jperm/perm_rule_add.html
View file @
a143797a
...
...
@@ -26,7 +26,7 @@
</div>
</div>
<div
class=
"ibox-content"
>
<form
method=
"post"
id=
"
user
Form"
class=
"form-horizontal"
action=
""
>
<form
method=
"post"
id=
"
rule
Form"
class=
"form-horizontal"
action=
""
>
{% if error %}
<div
class=
"alert alert-warning text-center"
>
{{ error }}
</div>
{% endif %}
...
...
@@ -34,7 +34,7 @@
<div
class=
"alert alert-success text-center"
>
{{ msg }}
</div>
{% endif %}
<div
class=
"form-group"
>
<label
for=
"
user
name"
class=
"col-sm-2 control-label"
>
授权名称
<span
class=
"red-fonts"
>
*
</span></label>
<label
for=
"
rule
name"
class=
"col-sm-2 control-label"
>
授权名称
<span
class=
"red-fonts"
>
*
</span></label>
<div
class=
"col-sm-8"
>
<input
id=
"rulename"
name=
"rulename"
placeholder=
"Rule Name"
type=
"text"
class=
"form-control"
{%
if
error
%}
value=
"{{ username }}"
{%
endif
%}
>
</div>
...
...
@@ -48,11 +48,11 @@
<option
value=
"{{ user.name }}"
>
{{ user.name }}
</option>
{% endfor %}
</select>
<span
class=
"help-block m-b-none"
>
用户和用户组必选一个
</span>
</div>
</div>
<div
class=
"hr-line-dashed"
></div>
<div
class=
"form-group"
>
<label
for=
"usergroup"
class=
"col-sm-2 control-label"
>
用户组
<
span
class=
"red-fonts"
>
*
</span><
/label>
<label
for=
"usergroup"
class=
"col-sm-2 control-label"
>
用户组
</label>
<div
class=
"col-sm-8"
>
<select
name=
"usergroup"
data-placeholder=
"请选择用户组"
class=
"chosen-select form-control m-b"
multiple
tabindex=
"2"
>
{% for user_group in user_groups %}
...
...
@@ -70,11 +70,11 @@
<option
value=
"{{ asset.ip }}"
>
{{ asset.ip }}
</option>
{% endfor %}
</select>
<span
class=
"help-block m-b-none"
>
资产和资产组必选一个
</span>
</div>
</div>
<div
class=
"hr-line-dashed"
></div>
<div
class=
"form-group"
>
<label
for=
"assetgroup"
class=
"col-sm-2 control-label"
>
资产组
<
span
class=
"red-fonts"
>
*
</span><
/label>
<label
for=
"assetgroup"
class=
"col-sm-2 control-label"
>
资产组
</label>
<div
class=
"col-sm-8"
>
<select
name=
"assetgroup"
data-placeholder=
"请选择资产组"
class=
"chosen-select form-control m-b"
multiple
tabindex=
"2"
>
{% for asset_group in asset_groups %}
...
...
@@ -120,31 +120,31 @@
<script>
$
(
'#ruleForm'
).
submit
(
function
()
{
var
result
=
{}
var
result
=
{}
;
var
data
=
$
(
this
).
serializeArray
();
$
.
each
(
data
,
function
(
i
,
field
)
{
$
.
each
(
data
,
function
(
i
,
field
)
{
result
[
field
.
name
]
=
field
.
value
;
});
if
(
result
[
'user'
]
||
result
[
'usergroup'
]
||
result
[
'asset'
]
||
result
[
'assetgroup'
]
||
result
[
'rulename'
]
||
result
[
'role'
])
{
if
(
result
[
'rulename'
]
===
''
)
{
alert
(
"请添加授权名称"
)
alert
(
"请添加授权名称"
)
;
return
false
}
if
(
!
result
[
'user'
]
&&
!
result
[
'usergroup'
])
{
alert
(
"用户和用户组必选1个"
)
if
(
!
result
[
'user'
]
&&
!
result
[
'usergroup'
])
{
alert
(
"用户和用户组必选1个"
)
;
return
false
}
if
(
!
result
[
'asset'
]
&&
!
result
[
'assetgroup'
])
{
alert
(
"资产和资产组必选1个"
)
if
(
!
result
[
'asset'
]
&&
!
result
[
'assetgroup'
])
{
alert
(
"资产和资产组必选1个"
)
;
return
false
}
if
(
!
result
[
'role'
])
{
alert
(
"请填写角色"
)
if
(
!
result
[
'role'
])
{
alert
(
"请填写角色"
)
;
return
false
}
return
true
}
else
{
alert
(
"请填必选项"
)
alert
(
"请填必选项"
)
;
return
false
;
}
});
...
...
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