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
d5fba23d
Commit
d5fba23d
authored
Apr 18, 2015
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加授权详情页,并添加用户详情页链接到授权列表
parent
e96053ba
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
227 additions
and
242 deletions
+227
-242
views.py
jperm/views.py
+61
-106
api.py
jumpserver/api.py
+8
-0
mytags.py
jumpserver/templatetags/mytags.py
+3
-0
perm_detail.html
templates/jperm/perm_detail.html
+61
-50
sudo_detail.html
templates/jperm/sudo_detail.html
+88
-72
sudo_list.html
templates/jperm/sudo_list.html
+2
-8
user_detail.html
templates/juser/user_detail.html
+1
-3
nav.html
templates/nav.html
+3
-3
No files found.
jperm/views.py
View file @
d5fba23d
...
...
@@ -85,11 +85,30 @@ def dept_perm_edit(request):
def
perm_list
(
request
):
header_title
,
path1
,
path2
=
u'小组授权'
,
u'授权管理'
,
u'授权详情'
keyword
=
request
.
GET
.
get
(
'search'
,
''
)
uid
=
request
.
GET
.
get
(
'uid'
,
''
)
agid
=
request
.
GET
.
get
(
'agid'
,
''
)
if
keyword
:
contact_list
=
UserGroup
.
objects
.
filter
(
Q
(
name__icontains
=
keyword
)
|
Q
(
comment__icontains
=
keyword
))
else
:
contact_list
=
UserGroup
.
objects
.
all
()
.
order_by
(
'name'
)
if
uid
:
user
=
User
.
objects
.
filter
(
id
=
uid
)
print
user
if
user
:
user
=
user
[
0
]
contact_list
=
contact_list
.
filter
(
user
=
user
)
if
agid
:
contact_list_confirm
=
[]
asset_group
=
BisGroup
.
objects
.
filter
(
id
=
agid
)
if
asset_group
:
asset_group
=
asset_group
[
0
]
for
user_group
in
contact_list
:
if
asset_group
in
user_group_perm_asset_group_api
(
user_group
):
contact_list_confirm
.
append
(
user_group
)
contact_list
=
contact_list_confirm
contact_list
,
p
,
contacts
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
contact_list
,
request
)
return
render_to_response
(
'jperm/perm_list.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
...
...
@@ -98,11 +117,30 @@ def perm_list(request):
def
perm_list_adm
(
request
):
header_title
,
path1
,
path2
=
u'小组授权'
,
u'授权管理'
,
u'授权详情'
keyword
=
request
.
GET
.
get
(
'search'
,
''
)
uid
=
request
.
GET
.
get
(
'uid'
,
''
)
agid
=
request
.
GET
.
get
(
'agid'
,
''
)
user
,
dept
=
get_session_user_dept
(
request
)
contact_list
=
dept
.
usergroup_set
.
all
()
.
order_by
(
'name'
)
if
keyword
:
contact_list
=
contact_list
.
filter
(
Q
(
name__icontains
=
keyword
)
|
Q
(
comment__icontains
=
keyword
))
if
uid
:
user
=
User
.
objects
.
filter
(
id
=
uid
)
print
user
if
user
:
user
=
user
[
0
]
contact_list
=
contact_list
.
filter
(
user
=
user
)
if
agid
:
contact_list_confirm
=
[]
asset_group
=
BisGroup
.
objects
.
filter
(
id
=
agid
)
if
asset_group
:
asset_group
=
asset_group
[
0
]
for
user_group
in
contact_list
:
if
asset_group
in
user_group_perm_asset_group_api
(
user_group
):
contact_list_confirm
.
append
(
user_group
)
contact_list
=
contact_list_confirm
contact_list
,
p
,
contacts
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
contact_list
,
request
)
return
render_to_response
(
'jperm/perm_list.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
...
...
@@ -187,19 +225,15 @@ def perm_edit_adm(request):
@require_admin
def
perm_detail
(
request
):
header_title
,
path1
,
path2
=
u'
编辑授权'
,
u'授权
管理'
,
u'授权详情'
header_title
,
path1
,
path2
=
u'
授权管理'
,
u'小组
管理'
,
u'授权详情'
group_id
=
request
.
GET
.
get
(
'id'
)
user_group
=
UserGroup
.
objects
.
filter
(
id
=
group_id
)
if
user_group
:
user_group
=
user_group
[
0
]
users_list
=
user_group
.
user_set
.
all
()
users
=
user_group
.
user_set
.
all
()
group_user_num
=
len
(
users
)
perms
=
user_group
.
perm_set
.
all
()
asset_groups
=
[
perm
.
asset_group
for
perm
in
perms
]
assets_list
=
[]
for
asset_group
in
asset_groups
:
assets_list
.
extend
(
asset_group
.
asset_set
.
all
())
return
render_to_response
(
'jperm/perm_detail.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
...
...
@@ -224,17 +258,6 @@ def perm_asset_detail(request):
return
render_to_response
(
'jperm/perm_asset_detail.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
# def sudo_db_add(name, user_runas, user_groups_select, asset_groups_select, cmd_groups_select, comment):
# user_groups_select_list, asset_groups_select_list, cmd_groups_select_list = \
# user_asset_cmd_groups_get(user_groups_select, asset_groups_select, cmd_groups_select)
#
# sudo_perm = SudoPerm(name=name, user_runas=user_runas, comment=comment)
# sudo_perm.save()
# sudo_perm.user_group = user_groups_select_list
# sudo_perm.asset_group = asset_groups_select_list
# sudo_perm.cmd_group = cmd_groups_select_list
def
unicode2str
(
unicode_list
):
return
[
str
(
i
)
for
i
in
unicode_list
]
...
...
@@ -243,7 +266,6 @@ def sudo_ldap_add(user_group, user_runas, asset_groups_select,
cmd_groups_select
):
if
not
LDAP_ENABLE
:
return
True
assets
=
[]
cmds
=
[]
user_runas
=
user_runas
.
split
(
','
)
...
...
@@ -283,7 +305,6 @@ def sudo_ldap_add(user_group, user_runas, asset_groups_select,
'sudoOption'
:
[
'!authenticate'
],
'sudoRunAsUser'
:
unicode2str
(
user_runas
),
'sudoUser'
:
unicode2str
(
users_name
)}
print
sudo_dn
ldap_conn
.
delete
(
sudo_dn
)
ldap_conn
.
add
(
sudo_dn
,
sudo_attr
)
...
...
@@ -306,53 +327,6 @@ def sudo_update(user_group, user_runas, asset_groups_select, cmd_groups_select,
sudo_ldap_add
(
user_group
,
user_runas
,
asset_groups_select_list
,
cmd_groups_select_list
)
# @require_super_user
# def sudo_add(request):
# header_title, path1, path2 = u'Sudo授权', u'权限管理', u'添加Sudo权限'
# user_groups = UserGroup.objects.filter(id__gt=2)
# asset_groups = BisGroup.objects.all()
# cmd_groups = CmdGroup.objects.all()
#
# if request.method == 'POST':
# name = request.POST.get('name')
# users_runas = request.POST.get('runas', 'root')
# user_groups_select = request.POST.getlist('user_groups_select')
# asset_groups_select = request.POST.getlist('asset_groups_select')
# cmd_groups_select = request.POST.getlist('cmd_groups_select')
# comment = request.POST.get('comment', '')
#
# if LDAP_ENABLE:
# sudo_db_add(name, users_runas, user_groups_select, asset_groups_select, cmd_groups_select, comment)
# sudo_ldap_add(name, users_runas, user_groups_select, asset_groups_select, cmd_groups_select)
#
# msg = '添加成功'
# return render_to_response('jperm/sudo_add.html', locals(), context_instance=RequestContext(request))
# @require_admin
# def sudo_add_adm(request):
# header_title, path1, path2 = u'Sudo授权', u'权限管理', u'添加Sudo权限'
# user, dept = get_session_user_dept(request)
# user_groups = dept.usergroup_set.filter(id__gt=2)
# asset_groups = dept.bisgroup_set.all()
# cmd_groups = CmdGroup.objects.all()
#
# if request.method == 'POST':
# name = request.POST.get('name')
# users_runas = request.POST.get('runas', 'root')
# user_groups_select = request.POST.getlist('user_groups_select')
# asset_groups_select = request.POST.getlist('asset_groups_select')
# cmd_groups_select = request.POST.getlist('cmd_groups_select')
# comment = request.POST.get('comment', '')
#
# if LDAP_ENABLE:
# sudo_db_add(name, users_runas, user_groups_select, asset_groups_select, cmd_groups_select, comment)
# sudo_ldap_add(name, users_runas, user_groups_select, asset_groups_select, cmd_groups_select)
#
# msg = '添加成功'
# return render_to_response('jperm/sudo_add.html', locals(), context_instance=RequestContext(request))
@require_super_user
def
sudo_list
(
request
):
header_title
,
path1
,
path2
=
u'Sudo授权'
,
u'权限管理'
,
u'Sudo权限详情'
...
...
@@ -417,7 +391,6 @@ def sudo_edit(request):
msg
=
'修改成功'
return
HttpResponseRedirect
(
'/jperm/sudo_list/'
)
return
render_to_response
(
'jperm/sudo_edit.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
...
...
@@ -467,6 +440,26 @@ def sudo_edit_adm(request):
return
render_to_response
(
'jperm/sudo_edit.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
@require_admin
def
sudo_detail
(
request
):
header_title
,
path1
,
path2
=
u'Sudo授权详情'
,
u'授权管理'
,
u'授权详情'
user_group_id
=
request
.
GET
.
get
(
'id'
)
user_group
=
UserGroup
.
objects
.
filter
(
id
=
user_group_id
)
if
user_group
:
asset_groups
=
[]
cmd_groups
=
[]
user_group
=
user_group
[
0
]
users
=
user_group
.
user_set
.
all
()
group_user_num
=
len
(
users
)
for
perm
in
user_group
.
sudoperm_set
.
all
():
asset_groups
.
extend
(
perm
.
asset_group
.
all
())
cmd_groups
.
extend
(
perm
.
cmd_group
.
all
())
print
asset_groups
return
render_to_response
(
'jperm/sudo_detail.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
@require_admin
def
sudo_refresh
(
request
):
sudo_perm_all
=
SudoPerm
.
objects
.
all
()
...
...
@@ -479,43 +472,6 @@ def sudo_refresh(request):
return
HttpResponse
(
'刷新sudo授权成功'
)
# @require_admin
# def sudo_detail(request):
# header_title, path1, path2 = u'Sudo授权详情', u'授权管理', u'授权详情'
# sudo_perm_id = request.GET.get('id')
# sudo_perm = SudoPerm.objects.filter(id=sudo_perm_id)
# if sudo_perm:
# sudo_perm = sudo_perm[0]
# user_groups = sudo_perm.user_group.all()
# asset_groups = sudo_perm.asset_group.all()
# cmd_groups = sudo_perm.cmd_group.all()
#
# users_list = []
# assets_list = []
# cmds_list = []
#
# for user_group in user_groups:
# users_list.extend(user_group.user_set.all())
# for asset_group in asset_groups:
# assets_list.extend(asset_group.asset_set.all())
# for cmd_group in cmd_groups:
# cmds_list.append({cmd_group.name: cmd_group.cmd.split(',')})
#
# return render_to_response('jperm/sudo_detail.html', locals(), context_instance=RequestContext(request))
# @require_admin
# def sudo_del(request):
# sudo_perm_id = request.GET.get('id', '0')
# sudo_perm = SudoPerm.objects.filter(id=int(sudo_perm_id))
# if sudo_perm:
# name = sudo_perm[0].name
# sudo_perm.delete()
# sudo_dn = 'cn=%s,ou=Sudoers,%s' % (name, LDAP_BASE_DN)
# ldap_conn.delete(sudo_dn)
# return HttpResponseRedirect('/jperm/sudo_list/')
@require_super_user
def
cmd_add
(
request
):
header_title
,
path1
,
path2
=
u'sudo命令添加'
,
u'授权管理'
,
u'命令组添加'
...
...
@@ -543,7 +499,6 @@ def cmd_add(request):
CmdGroup
.
objects
.
create
(
name
=
name
,
dept
=
dept
,
cmd
=
cmd
,
comment
=
comment
)
msg
=
u'命令组添加成功'
return
HttpResponseRedirect
(
'/jperm/cmd_list/'
)
return
render_to_response
(
'jperm/sudo_cmd_add.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
...
...
jumpserver/api.py
View file @
d5fba23d
...
...
@@ -283,6 +283,14 @@ def view_splitter(request, su=None, adm=None):
return
HttpResponseRedirect
(
'/login/'
)
def
user_group_perm_asset_group_api
(
user_group
):
asset_group_list
=
[]
perm_list
=
user_group
.
perm_set
.
all
()
for
perm
in
perm_list
:
asset_group_list
.
append
(
perm
.
asset_group
)
return
asset_group_list
def
user_perm_group_api
(
username
):
if
username
:
user
=
User
.
objects
.
get
(
username
=
username
)
...
...
jumpserver/templatetags/mytags.py
View file @
d5fba23d
...
...
@@ -380,3 +380,6 @@ def sudo_cmd_ids(user_group_id):
return
'0'
@register.filter
(
name
=
'cmd_group_split'
)
def
cmd_group_split
(
cmd_group
):
return
cmd_group
.
cmd
.
split
(
','
)
templates/jperm/perm_detail.html
View file @
d5fba23d
...
...
@@ -5,10 +5,10 @@
{% include 'nav_cat_bar.html' %}
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
<div
class=
"col-lg-
6
"
>
<div
class=
"col-lg-
4
"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
用户详情
</h5>
<h5>
授权主机/组
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
...
...
@@ -17,9 +17,9 @@
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
未启用
1
</a>
<li><a
href=
"#"
>
Config option
1
</a>
</li>
<li><a
href=
"#"
>
未启用
2
</a>
<li><a
href=
"#"
>
Config option
2
</a>
</li>
</ul>
<a
class=
"close-link"
>
...
...
@@ -27,35 +27,41 @@
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<
table
class=
"table"
>
<thead
>
<tr
>
<th>
用户名
</th
>
<th>
姓名
</th
>
<th>
部门
</th
>
<
th>
小组
</th
>
</tr
>
</thead
>
<tbody
>
{% for user in users_list %}
<tr
>
<td>
{{ user.username }}
</td
>
<td>
{{ user.name }}
</td
>
<td>
{{ user.dept.name }}
</td
>
<td>
{{ user.group.all | group_str2 }}
</td>
</t
r>
<div
class=
"ibox-content
ibox-heading
"
>
<
h3>
用户
</h3
>
<small><i
class=
"fa fa-map-marker"
></i>
组下用户.
</small
>
</div
>
<div
class=
"ibox-content inspinia-timeline"
>
<div
class=
"timeline-item"
>
<div
class=
"row"
>
<
div
class=
"col-xs-3 date"
>
<i
class=
"fa fa-users"
></i
>
<b>
{{ user_group.name }}
</b
>
<br
>
<small
class=
"text-navy"
>
共: {{ group_user_num }} 用户
</small>
</div
>
<div
class=
"col-xs-7 content no-top-border"
>
<p
class=
"m-b-xs"
><strong>
{{ user_group.comment }}
</strong></p
>
<p
>
{% for user in users %}
{{ user.name }}
<b
r>
{% endfor %}
</tbody>
</table>
</p>
<p></p>
</div>
</div>
</div>
{% if not user|get_user_asset_group %}
(无)
{% endif %}
</div>
</div>
</div>
<div
class=
"col-lg-
6
"
>
<div
class=
"col-lg-
4
"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
授权
详情
</h5>
<h5>
授权
主机/组
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
...
...
@@ -64,9 +70,9 @@
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
未启用
1
</a>
<li><a
href=
"#"
>
Config option
1
</a>
</li>
<li><a
href=
"#"
>
未启用
2
</a>
<li><a
href=
"#"
>
Config option
2
</a>
</li>
</ul>
<a
class=
"close-link"
>
...
...
@@ -74,33 +80,38 @@
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<table
class=
"table"
>
<thead>
<tr>
<th>
IP
</th>
<th>
IDC
</th>
<th>
主机组
</th>
</tr>
</thead>
<tbody>
{% for asset in assets_list %}
<tr>
<td>
{{ asset.ip }}
</td>
<td>
{{ asset.idc.name }}
</td>
<td>
{% for group in asset.bis_group.all %}
{{ group }}
<div
class=
"ibox-content ibox-heading"
>
<h3>
授权主机/组
</h3>
<small><i
class=
"fa fa-map-marker"
></i>
这里包含了用户所有的主机组和组下的主机.
</small>
</div>
<div
class=
"ibox-content inspinia-timeline"
>
{% for group in asset_groups %}
<div
class=
"timeline-item"
>
<div
class=
"row"
>
<div
class=
"col-xs-3 date"
>
<i
class=
"fa fa-repeat"
></i>
<b>
{{ group.name }}
</b>
<br>
<small
class=
"text-navy"
>
共: {{ group | group_asset_list_count }}台
</small>
</div>
<div
class=
"col-xs-7 content no-top-border"
>
<p
class=
"m-b-xs"
><strong>
{{ group.comment }}
</strong></p>
<p>
{% for asset in group|group_asset_list %}
{{ asset.ip }}
<br>
{% endfor %}
</td>
</tr>
</p>
<p></p>
</div>
</div>
</div>
{% endfor %}
</tbody>
</table>
{% if not user|get_user_asset_group %}
(暂无)
{% endif %}
</div>
</div>
</div>
</div>
</div>
...
...
templates/jperm/sudo_detail.html
View file @
d5fba23d
...
...
@@ -5,10 +5,10 @@
{% include 'nav_cat_bar.html' %}
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
<div
class=
"col-lg-
6
"
>
<div
class=
"col-lg-
4
"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
Sudo授权详情
</h5>
<h5>
授权主机/组
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
...
...
@@ -17,9 +17,9 @@
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
未启用
1
</a>
<li><a
href=
"#"
>
Config option
1
</a>
</li>
<li><a
href=
"#"
>
未启用
2
</a>
<li><a
href=
"#"
>
Config option
2
</a>
</li>
</ul>
<a
class=
"close-link"
>
...
...
@@ -27,35 +27,41 @@
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<
table
class=
"table"
>
<thead
>
<tr
>
<th>
用户名
</th
>
<th>
姓名
</th
>
<th>
部门
</th
>
<
th>
属组
</th
>
</tr
>
</thead
>
<tbody
>
{% for user in users_list %}
<tr
>
<td>
{{ user.username }}
</td
>
<td>
{{ user.name }}
</td
>
<td>
{{ user.dept.name }}
</td
>
<td>
{{ user.group.all | group_str2}}
</td>
</t
r>
<div
class=
"ibox-content
ibox-heading
"
>
<
h3>
用户
</h3
>
<small><i
class=
"fa fa-map-marker"
></i>
组下用户.
</small
>
</div
>
<div
class=
"ibox-content inspinia-timeline"
>
<div
class=
"timeline-item"
>
<div
class=
"row"
>
<
div
class=
"col-xs-3 date"
>
<i
class=
"fa fa-users"
></i
>
<b>
{{ user_group.name }}
</b
>
<br
>
<small
class=
"text-navy"
>
共: {{ group_user_num }} 用户
</small>
</div
>
<div
class=
"col-xs-7 content no-top-border"
>
<p
class=
"m-b-xs"
><strong>
{{ user_group.comment }}
</strong></p
>
<p
>
{% for user in users %}
{{ user.name }}
<b
r>
{% endfor %}
</tbody>
</table>
</p>
<p></p>
</div>
</div>
</div>
{% if not users %}
(暂无)
{% endif %}
</div>
</div>
</div>
<div
class=
"col-lg-
6
"
>
<div
class=
"col-lg-
4
"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
授权主机
<small>
Asset.
</small>
</h5>
<h5>
授权主机
/组
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
...
...
@@ -64,9 +70,9 @@
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
未启用
1
</a>
<li><a
href=
"#"
>
Config option
1
</a>
</li>
<li><a
href=
"#"
>
未启用
2
</a>
<li><a
href=
"#"
>
Config option
2
</a>
</li>
</ul>
<a
class=
"close-link"
>
...
...
@@ -74,37 +80,43 @@
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<table
class=
"table"
>
<thead>
<tr>
<th>
IP
</th>
<th>
IDC
</th>
<th>
主机组
</th>
</tr>
</thead>
<tbody>
{% for asset in assets_list %}
<tr>
<td>
{{ asset.ip }}
</td>
<td>
{{ asset.idc.name }}
</td>
<td>
{% for group in asset.bis_group.all|filter_private %}
{{ group }}
<div
class=
"ibox-content ibox-heading"
>
<h3>
授权主机/组
</h3>
<small><i
class=
"fa fa-map-marker"
></i>
这里包含了sudo授权所有的主机组和组下的主机.
</small>
</div>
<div
class=
"ibox-content inspinia-timeline"
>
{% for group in asset_groups %}
<div
class=
"timeline-item"
>
<div
class=
"row"
>
<div
class=
"col-xs-3 date"
>
<i
class=
"fa fa-repeat"
></i>
<b>
{{ group.name }}
</b>
<br>
<small
class=
"text-navy"
>
共: {{ group | group_asset_list_count }}台
</small>
</div>
<div
class=
"col-xs-7 content no-top-border"
>
<p
class=
"m-b-xs"
><strong>
{{ group.comment }}
</strong></p>
<p>
{% for asset in group|group_asset_list %}
{{ asset.ip }}
<br>
{% endfor %}
</td>
</tr>
</p>
<p></p>
</div>
</div>
</div>
{% endfor %}
</tbody>
</table>
{% if not asset_groups %}
(暂无)
{% endif %}
</div>
</div>
</div>
<div
class=
"col-lg-
6
"
>
<div
class=
"col-lg-
4
"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
授权命令
<small>
Command.
</small>
</h5>
<h5>
授权命令
/组
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
...
...
@@ -113,9 +125,9 @@
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
未启用
1
</a>
<li><a
href=
"#"
>
Config option
1
</a>
</li>
<li><a
href=
"#"
>
未启用
2
</a>
<li><a
href=
"#"
>
Config option
2
</a>
</li>
</ul>
<a
class=
"close-link"
>
...
...
@@ -123,27 +135,31 @@
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<table
class=
"table"
>
<thead>
<tr>
<th>
命令
</th>
<th>
命令组
</th>
</tr>
</thead>
<tbody>
{% for cmd_group in cmds_list %}
{% for cmd_group_name, cmds in cmd_group.items %}
{% for cmd in cmds %}
<tr>
<td>
{{ cmd }}
</td>
<td>
{{ cmd_group_name }}
</td>
</tr>
{% endfor %}
<div
class=
"ibox-content inspinia-timeline"
>
{% for cmd_group in cmd_groups %}
<div
class=
"timeline-item"
>
<div
class=
"row"
>
<div
class=
"col-xs-3 date"
>
<i
class=
"fa fa-linux"
></i>
<b>
{{ cmd_group.name }}
</b>
<br>
<small
class=
"text-navy"
>
共: {{ cmd_group.id|sudo_cmd_count }} 个
</small>
</div>
<div
class=
"col-xs-7 content no-top-border"
>
<p
class=
"m-b-xs"
><strong>
{{ group.comment }}
</strong></p>
<p>
{% for cmd in cmd_group|cmd_group_split %}
{{ cmd }}
<br>
{% endfor %}
</p>
<p></p>
</div>
</div>
</div>
{% endfor %}
</tbody>
</table>
{% if not cmd_groups %}
(暂无)
{% endif %}
</div>
</div>
</div>
...
...
templates/jperm/sudo_list.html
View file @
d5fba23d
...
...
@@ -5,7 +5,7 @@
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
<div
class=
"col-lg-1
2
"
>
<div
class=
"col-lg-1
0
"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
Sudo授权列表
</h5>
...
...
@@ -45,7 +45,6 @@
</div>
<div
class=
"panel-body"
>
<div
class=
"tab-content"
>
<div
id=
"tab-1"
class=
"tab-pane active"
>
<table
class=
"table table-striped table-bordered table-hover "
id=
"editable"
>
...
...
@@ -72,6 +71,7 @@
<td
class=
"text-center"
><a
value=
"/jperm/cmd_detail/?id={{ group.id | sudo_cmd_ids }}"
class=
"iframe"
>
{{ group.id | sudo_cmd_count }}
</a>
</td>
<td
class=
"text-center"
>
{{ group.comment }}
</td>
<td
class=
"text-center"
>
<a
href=
"../sudo_detail/?id={{ group.id }}"
class=
"btn btn-xs btn-primary"
>
详情
</a>
<a
href=
"../sudo_edit/?id={{ group.id }}"
class=
"btn btn-xs btn-danger"
>
sudo授权
</a>
</td>
</tr>
...
...
@@ -87,15 +87,9 @@
{% include 'paginator.html' %}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
...
templates/juser/user_detail.html
View file @
d5fba23d
...
...
@@ -118,20 +118,18 @@
<div
class=
"row"
>
<div
class=
"col-xs-3 date"
>
<i
class=
"fa fa-repeat"
></i>
<b>
{{ group.name }}
</b>
<b>
<a
href=
"/jperm/perm_list/?uid={{ user.id }}&agid={{ group.id }}"
>
{{ group.name }}
</a>
</b>
<br>
<small
class=
"text-navy"
>
共: {{ group | group_asset_list_count }}台
</small>
</div>
<div
class=
"col-xs-7 content no-top-border"
>
<p
class=
"m-b-xs"
><strong>
{{ group.comment }}
</strong></p>
<p>
{% for asset in group|group_asset_list %}
{{ asset.ip }}
<br>
{% endfor %}
</p>
<p></p>
</div>
</div>
</div>
...
...
templates/nav.html
View file @
d5fba23d
...
...
@@ -35,11 +35,11 @@
<a
href=
"/jperm/dept_perm_list/"
>
部门授权
</a>
</li>
<li
class=
"perm_list perm_edit perm_detail
"
>
<li
class=
"perm_list perm_edit perm_detail"
>
<a
href=
"/jperm/perm_list/"
>
小组授权
</a>
</li>
<li
class=
"sudo_list sudo_edit sudo_add cmd_list cmd_edit cmd_add"
>
<li
class=
"sudo_list sudo_edit sudo_add cmd_list cmd_edit cmd_add
sudo_detail
"
>
<a
href=
"/jperm/sudo_list/"
>
Sudo授权
</a>
</li>
<li
class=
"apply_show online"
><a
href=
"/jperm/apply_show/online/"
>
权限审批
</a></li>
...
...
@@ -91,7 +91,7 @@
<a
href=
"/jperm/perm_list/"
>
小组授权
</a>
</li>
<li
class=
"sudo_list sudo_edit sudo_add cmd_list cmd_edit cmd_add"
>
<li
class=
"sudo_list sudo_edit sudo_add cmd_list cmd_edit cmd_add
sudo_detail
"
>
<a
href=
"/jperm/sudo_list/"
>
Sudo授权
</a>
</li>
<li
class=
"apply_show online"
><a
href=
"/jperm/apply_show/online/"
>
权限审批
</a></li>
...
...
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