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
97038aab
Commit
97038aab
authored
Feb 10, 2015
by
guanghongwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sudoȨ
parent
50208c00
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
120 additions
and
34 deletions
+120
-34
models.py
jperm/models.py
+2
-2
urls.py
jperm/urls.py
+2
-0
views.py
jperm/views.py
+43
-6
sudo_add.html
templates/jperm/sudo_add.html
+59
-6
sudo_cmd_add.html
templates/jperm/sudo_cmd_add.html
+11
-17
sudo_cmd_list.html
templates/jperm/sudo_cmd_list.html
+2
-3
sudo_list.html
templates/jperm/sudo_list.html
+1
-0
No files found.
jperm/models.py
View file @
97038aab
from
django.db
import
models
from
juser.models
import
User
,
User
Group
from
jasset.models
import
Asset
,
BisGroup
from
juser.models
import
UserGroup
from
jasset.models
import
BisGroup
class
Perm
(
models
.
Model
):
...
...
jperm/urls.py
View file @
97038aab
...
...
@@ -19,4 +19,6 @@ urlpatterns = patterns('jperm.views',
(
r'^sudo_detail/$'
,
'sudo_detail'
),
(
r'^cmd_add/$'
,
'cmd_add'
),
(
r'^cmd_list/$'
,
'cmd_list'
),
(
r'^cmd_del/$'
,
'cmd_del'
),
(
r'^cmd_edit/$'
,
'cmd_edit'
),
)
jperm/views.py
View file @
97038aab
...
...
@@ -55,7 +55,7 @@ def perm_user_asset(user_id=None, username=None):
def
perm_list
(
request
):
header_title
,
path1
,
path2
=
u'主机授权 | Perm Host Detail.'
,
u'
jperm'
,
u'perm_list
'
header_title
,
path1
,
path2
=
u'主机授权 | Perm Host Detail.'
,
u'
授权管理'
,
u'授权详情
'
groups
=
contact_list
=
UserGroup
.
objects
.
all
()
.
order_by
(
'type'
)
users
=
contact_list2
=
User
.
objects
.
all
()
.
order_by
(
'id'
)
p
=
paginator
=
Paginator
(
contact_list
,
10
)
...
...
@@ -111,7 +111,7 @@ def perm_list_ajax(request):
def
perm_edit
(
request
):
if
request
.
method
==
'GET'
:
header_title
,
path1
,
path2
=
u'编辑授权 | Perm Host Edit.'
,
u'
jperm'
,
u'perm_edit
'
header_title
,
path1
,
path2
=
u'编辑授权 | Perm Host Edit.'
,
u'
授权管理'
,
u'授权编辑
'
user_group_id
=
request
.
GET
.
get
(
'id'
)
user_group
=
UserGroup
.
objects
.
get
(
id
=
user_group_id
)
asset_groups
=
BisGroup
.
objects
.
all
()
...
...
@@ -254,11 +254,12 @@ def sudo_add(request):
sudo_ldap_add
(
name
,
users_runas
,
user_groups_select
,
asset_groups_select
,
cmd_groups_select
)
msg
=
'添加成功'
return
HttpResponseRedirect
(
'/jperm/sudo_list/'
)
return
render_to_response
(
'jperm/sudo_add.html'
,
locals
())
def
sudo_list
(
request
):
header_title
,
path1
,
path2
=
u'Sudo授权 | Perm Sudo Detail.'
,
u'
jperm'
,
u'sudo_list
'
header_title
,
path1
,
path2
=
u'Sudo授权 | Perm Sudo Detail.'
,
u'
权限管理'
,
u'Sudo权限详情
'
sudo_perms
=
contact_list
=
SudoPerm
.
objects
.
all
()
p1
=
paginator1
=
Paginator
(
contact_list
,
10
)
user_groups
=
UserGroup
.
objects
.
filter
(
Q
(
type
=
'A'
)
|
Q
(
type
=
'P'
))
...
...
@@ -278,7 +279,7 @@ def sudo_list(request):
def
sudo_edit
(
request
):
header_title
,
path1
,
path2
=
u'Sudo授权 | Perm Sudo Detail.'
,
u'
jperm'
,
u'sudo_list
'
header_title
,
path1
,
path2
=
u'Sudo授权 | Perm Sudo Detail.'
,
u'
授权管理'
,
u'Sudo修改
'
if
request
.
method
==
'GET'
:
sudo_perm_id
=
request
.
GET
.
get
(
'id'
,
'0'
)
...
...
@@ -359,7 +360,7 @@ def sudo_del(request):
def
cmd_add
(
request
):
header_title
,
path1
,
path2
=
u'sudo命令添加 | Sudo Cmd Add.'
,
u'
jperm'
,
u'sudo_cmd_add
'
header_title
,
path1
,
path2
=
u'sudo命令添加 | Sudo Cmd Add.'
,
u'
授权管理管理'
,
u'命令组添加
'
if
request
.
method
==
'POST'
:
name
=
request
.
POST
.
get
(
'name'
)
...
...
@@ -369,11 +370,39 @@ def cmd_add(request):
CmdGroup
.
objects
.
create
(
name
=
name
,
cmd
=
cmd
,
comment
=
comment
)
msg
=
u'命令组添加成功'
return
HttpResponseRedirect
(
'/jperm/cmd_list/'
)
return
render_to_response
(
'jperm/sudo_cmd_add.html'
,
locals
())
def
cmd_edit
(
request
):
header_title
,
path1
,
path2
=
u'sudo命令修改 | Sudo Cmd Edit.'
,
u'授权管理管理'
,
u'命令组修改'
cmd_group_id
=
request
.
GET
.
get
(
'id'
)
cmd_group
=
CmdGroup
.
objects
.
filter
(
id
=
cmd_group_id
)
if
cmd_group
:
cmd_group
=
cmd_group
[
0
]
cmd_group_id
=
cmd_group
.
id
name
=
cmd_group
.
name
cmd
=
cmd_group
.
cmd
comment
=
cmd_group
.
comment
if
request
.
method
==
'POST'
:
cmd_group_id
=
request
.
POST
.
get
(
'cmd_group_id'
)
name
=
request
.
POST
.
get
(
'name'
)
cmd
=
','
.
join
(
request
.
POST
.
get
(
'cmd'
)
.
split
())
comment
=
request
.
POST
.
get
(
'comment'
)
cmd_group
=
CmdGroup
.
objects
.
filter
(
id
=
cmd_group_id
)
if
cmd_group
:
cmd_group
.
update
(
name
=
name
,
cmd
=
cmd
,
comment
=
comment
)
return
HttpResponseRedirect
(
'/jperm/cmd_list/'
)
return
render_to_response
(
'jperm/sudo_cmd_add.html'
,
locals
())
def
cmd_list
(
request
):
header_title
,
path1
,
path2
=
u'sudo命令查看 | Sudo Cmd List.'
,
u'
jperm'
,
u'sudo_cmd_list
'
header_title
,
path1
,
path2
=
u'sudo命令查看 | Sudo Cmd List.'
,
u'
权限管理'
,
u'Sudo命令添加
'
cmd_groups
=
contact_list
=
CmdGroup
.
objects
.
all
()
p
=
paginator
=
Paginator
(
contact_list
,
10
)
...
...
@@ -389,3 +418,11 @@ def cmd_list(request):
contacts
=
paginator
.
page
(
paginator
.
num_pages
)
return
render_to_response
(
'jperm/sudo_cmd_list.html'
,
locals
())
def
cmd_del
(
request
):
cmd_group_id
=
request
.
GET
.
get
(
'id'
)
cmd_group
=
CmdGroup
.
objects
.
filter
(
id
=
cmd_group_id
)
if
cmd_group
:
cmd_group
[
0
]
.
delete
()
return
HttpResponseRedirect
(
'/jperm/cmd_list/'
)
templates/jperm/sudo_add.html
View file @
97038aab
...
...
@@ -38,7 +38,7 @@
{% endif %}
<div
class=
"row"
>
<div
class=
"form-group"
>
<label
for=
"name"
class=
"col-sm-2 control-label"
>
授权名
</label>
<label
for=
"name"
class=
"col-sm-2 control-label"
>
授权名
<
span
class=
"red-fonts"
>
*
</span><
/label>
<div
class=
"col-sm-8"
>
<input
id=
"name"
name=
"name"
placeholder=
"OnlyForEnglish"
type=
"text"
class=
"form-control"
>
<span
class=
"help-block m-b-none"
>
取个名字方便辨识,只支持英文
</span>
...
...
@@ -47,7 +47,7 @@
<div
class=
"hr-line-dashed"
></div>
<div
class=
"form-group"
>
<label
for=
"runas"
class=
"col-sm-2 control-label"
>
RunAsUser
</label>
<label
for=
"runas"
class=
"col-sm-2 control-label"
>
RunAsUser
<
span
class=
"red-fonts"
>
*
</span><
/label>
<div
class=
"col-sm-8"
>
<input
id=
"runas"
name=
"runas"
placeholder=
"RunAsUser"
type=
"text"
class=
"form-control"
>
<span
class=
"help-block m-b-none"
>
...
...
@@ -58,7 +58,7 @@
<div
class=
"hr-line-dashed"
></div>
<div
class=
"form-group"
>
<label
for=
""
class=
"col-sm-2 control-label"
>
用户组
</label>
<label
for=
""
class=
"col-sm-2 control-label"
>
用户组
<
span
class=
"red-fonts"
>
*
</span><
/label>
<div
class=
"col-sm-4"
>
<div>
<select
id=
"user_groups"
name=
"user_groups"
class=
"form-control"
size=
"5"
multiple
>
...
...
@@ -88,7 +88,7 @@
<div
class=
"hr-line-dashed"
></div>
<div
class=
"form-group"
>
<label
for=
""
class=
"col-sm-2 control-label"
>
主机组
</label>
<label
for=
""
class=
"col-sm-2 control-label"
>
主机组
<
span
class=
"red-fonts"
>
*
</span><
/label>
<div
class=
"col-sm-4"
>
<div>
<select
id=
"asset_groups"
name=
"asset_groups"
class=
"form-control m-b"
size=
"5"
multiple
>
...
...
@@ -117,7 +117,7 @@
<div
class=
"hr-line-dashed"
></div>
<div
class=
"form-group"
>
<label
for=
""
class=
"col-sm-2 control-label"
>
命令组
</label>
<label
for=
""
class=
"col-sm-2 control-label"
>
命令组
<
span
class=
"red-fonts"
>
*
</span><
/label>
<div
class=
"col-sm-4"
>
<div>
<select
id=
"cmd_groups"
name=
"cmd_groups"
class=
"form-control m-b"
size=
"5"
multiple
>
...
...
@@ -158,7 +158,7 @@
<div
class=
"form-group"
>
<div
class=
"col-sm-4 col-sm-offset-2"
>
<button
class=
"btn btn-white"
type=
"reset"
>
取消
</button>
<button
class=
"btn btn-primary"
type=
"submit"
onclick=
"javascript: (function(){$('#sudoPerm option').each(function(){$(this).prop('selected', true)})})()
"
>
确认保存
</button>
<button
id=
"submit_button"
class=
"btn btn-primary"
type=
"submit
"
>
确认保存
</button>
</div>
</div>
</div>
...
...
@@ -171,4 +171,56 @@
</div>
<script>
$
(
'#sudoPerm'
).
validator
({
timely
:
2
,
theme
:
"yellow_right_effect"
,
fields
:
{
"name"
:
{
rule
:
"required"
,
tip
:
"输入授权名"
,
ok
:
""
,
msg
:
{
required
:
"必须填写!"
}
},
"runas"
:
{
rule
:
"required"
,
tip
:
"输入sudoas用户"
,
ok
:
""
,
msg
:
{
required
:
"必须填写!"
}
},
"user_groups_select"
:
{
rule
:
"required"
,
tip
:
"选择用户组"
,
ok
:
""
,
msg
:
{
checked
:
"至少选择一个用户组"
}
},
"asset_groups_select"
:
{
rule
:
"required"
,
tip
:
"选择主机组"
,
ok
:
""
,
msg
:
{
checked
:
"至少选择一个主机组"
}
},
"cmd_groups_select"
:
{
rule
:
"required"
,
tip
:
"选择命令组"
,
ok
:
""
,
msg
:
{
checked
:
"至少选择一个命令组"
}
}
},
valid
:
function
(
form
)
{
form
.
submit
();
}
});
$
(
document
).
ready
(
function
(){
$
(
"#submit_button"
).
click
(
function
(){
$
(
'#users_selected option'
).
each
(
function
(){
$
(
this
).
prop
(
'selected'
,
true
)
})
})
})
</script>
{% endblock %}
\ No newline at end of file
templates/jperm/sudo_cmd_add.html
View file @
97038aab
...
...
@@ -37,14 +37,15 @@
<div
class=
"form-group"
>
<label
for=
"group_name"
class=
"col-sm-2 control-label"
>
组名
<span
class=
"red-fonts"
>
*
</span></label>
<div
class=
"col-sm-8"
>
<input
id=
"name"
name=
"name"
placeholder=
"Group name"
type=
"text"
class=
"form-control"
>
<input
id=
"name"
name=
"name"
placeholder=
"Group name"
type=
"text"
class=
"form-control"
value=
"{{ name }}"
required=
""
>
<input
id=
"cmd_group_id"
name=
"cmd_group_id"
type=
"text"
class=
"form-control"
value=
"{{ cmd_group_id }}"
style=
"display: none"
>
</div>
</div>
<div
class=
"hr-line-dashed"
></div>
<div
class=
"form-group"
>
<label
for=
"group_type"
class=
"col-sm-2 control-label"
>
命令
<span
class=
"red-fonts"
>
*
</span></label>
<div
class=
"col-sm-8"
>
<textarea
id=
'cmd'
name=
'cmd'
class=
"form-control"
rows=
"10"
placeholder=
"命令"
></textarea>
<textarea
id=
'cmd'
name=
'cmd'
class=
"form-control"
rows=
"10"
placeholder=
"命令"
>
{{ cmd }}
</textarea>
<span
class=
"help-block m-b-none"
>
输入命令一行一个
</span>
...
...
@@ -52,9 +53,9 @@
</div>
<div
class=
"hr-line-dashed"
></div>
<div
class=
"form-group"
>
<label
for=
"group_name"
class=
"col-sm-2 control-label"
>
备注
<
span
class=
"red-fonts"
>
*
</span><
/label>
<label
for=
"group_name"
class=
"col-sm-2 control-label"
>
备注
</label>
<div
class=
"col-sm-8"
>
<input
id=
"comment"
name=
"comment"
placeholder=
"备注说明"
type=
"text"
class=
"form-control"
>
<input
id=
"comment"
name=
"comment"
placeholder=
"备注说明"
type=
"text"
class=
"form-control"
value=
"{{ comment }}"
>
</div>
</div>
...
...
@@ -74,21 +75,21 @@
</div>
<script>
$
(
'#
group
Form'
).
validator
({
$
(
'#
cmd
Form'
).
validator
({
timely
:
2
,
theme
:
"yellow_right_effect"
,
fields
:
{
"
group_
name"
:
{
"name"
:
{
rule
:
"required"
,
tip
:
"输入组名"
,
ok
:
""
,
msg
:
{
required
:
"必须填写!"
}
},
"
group_type
"
:
{
rule
:
"
check
ed"
,
tip
:
"
选择组类型
"
,
"
cmd
"
:
{
rule
:
"
requir
ed"
,
tip
:
"
输入组名
"
,
ok
:
""
,
msg
:
{
required
:
"
至少选择一个组
!"
}
msg
:
{
required
:
"
必须填写
!"
}
}
},
valid
:
function
(
form
)
{
...
...
@@ -96,13 +97,6 @@ $('#groupForm').validator({
}
});
function
change_type
(
type
){
$
.
post
(
'/juser/group_add_ajax/'
,
{
'type'
:
type
},
function
(
data
){
$
(
'#users'
).
html
(
data
)
})
}
$
(
document
).
ready
(
function
(){
$
(
"#submit_button"
).
click
(
function
(){
...
...
templates/jperm/sudo_cmd_list.html
View file @
97038aab
...
...
@@ -49,9 +49,8 @@
<td
class=
"text-center"
>
{{ group.cmd }}
</td>
<td
class=
"text-center"
>
{{ group.comment }}
</td>
<td
class=
"text-center"
>
<a
title=
"[ {{ group.name }} ] 成员信息"
href=
"../group_detail/?id={{ group.id }}"
class=
"iframe btn btn-xs btn-primary"
>
成员
</a>
<a
href=
"../group_edit/?id={{ group.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
<a
href=
"../group_del/?id={{ group.id }}"
class=
"btn btn-xs btn-danger"
>
删除
</a>
<a
href=
"../cmd_edit/?id={{ group.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
<a
href=
"../cmd_del/?id={{ group.id }}"
class=
"btn btn-xs btn-danger"
>
删除
</a>
</td>
</tr>
{% endfor %}
...
...
templates/jperm/sudo_list.html
View file @
97038aab
...
...
@@ -32,6 +32,7 @@
<div
class=
""
style=
"margin-left: 15px;"
>
<a
target=
"_blank"
href=
"/jperm/cmd_add/"
class=
"btn btn-sm btn-primary "
>
添加命令组
</a>
<a
target=
"_blank"
href=
"/jperm/cmd_list/"
class=
"btn btn-sm btn-warning "
>
查看命令组
</a>
<a
target=
"_blank"
href=
"/jperm/sudo_add/"
class=
"btn btn-sm btn-danger "
>
Sudo授权添加
</a>
</div>
<div
class=
"panel blank-panel"
>
...
...
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