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
35c818f4
Commit
35c818f4
authored
Dec 05, 2015
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
用户详情
parent
532646a4
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
114 additions
and
78 deletions
+114
-78
views.py
jasset/views.py
+7
-2
perm_api.py
jperm/perm_api.py
+6
-3
views.py
jperm/views.py
+8
-3
mytags.py
jumpserver/templatetags/mytags.py
+11
-1
views.py
juser/views.py
+13
-31
asset_list.html
templates/jasset/asset_list.html
+2
-1
user_detail.html
templates/juser/user_detail.html
+63
-34
user_list.html
templates/juser/user_list.html
+4
-3
No files found.
jasset/views.py
View file @
35c818f4
...
@@ -97,7 +97,9 @@ def group_list(request):
...
@@ -97,7 +97,9 @@ def group_list(request):
header_title
,
path1
,
path2
=
u'查看资产组'
,
u'资产管理'
,
u'查看资产组'
header_title
,
path1
,
path2
=
u'查看资产组'
,
u'资产管理'
,
u'查看资产组'
keyword
=
request
.
GET
.
get
(
'keyword'
,
''
)
keyword
=
request
.
GET
.
get
(
'keyword'
,
''
)
asset_group_list
=
AssetGroup
.
objects
.
all
()
asset_group_list
=
AssetGroup
.
objects
.
all
()
group_id
=
request
.
GET
.
get
(
'id'
)
if
group_id
:
asset_group_list
=
asset_group_list
.
filter
(
id
=
group_id
)
if
keyword
:
if
keyword
:
asset_group_list
=
asset_group_list
.
filter
(
Q
(
name__contains
=
keyword
)
|
Q
(
comment__contains
=
keyword
))
asset_group_list
=
asset_group_list
.
filter
(
Q
(
name__contains
=
keyword
)
|
Q
(
comment__contains
=
keyword
))
...
@@ -261,7 +263,7 @@ def asset_list(request):
...
@@ -261,7 +263,7 @@ def asset_list(request):
asset_group_all
=
AssetGroup
.
objects
.
all
()
asset_group_all
=
AssetGroup
.
objects
.
all
()
asset_types
=
ASSET_TYPE
asset_types
=
ASSET_TYPE
asset_status
=
ASSET_STATUS
asset_status
=
ASSET_STATUS
asset_id
=
request
.
GET
.
get
(
'id'
)
idc_name
=
request
.
GET
.
get
(
'idc'
,
''
)
idc_name
=
request
.
GET
.
get
(
'idc'
,
''
)
group_name
=
request
.
GET
.
get
(
'group'
,
''
)
group_name
=
request
.
GET
.
get
(
'group'
,
''
)
asset_type
=
request
.
GET
.
get
(
'asset_type'
,
''
)
asset_type
=
request
.
GET
.
get
(
'asset_type'
,
''
)
...
@@ -294,6 +296,9 @@ def asset_list(request):
...
@@ -294,6 +296,9 @@ def asset_list(request):
if
status
:
if
status
:
asset_find
=
asset_find
.
filter
(
status__contains
=
status
)
asset_find
=
asset_find
.
filter
(
status__contains
=
status
)
if
asset_id
:
asset_find
=
asset_find
.
filter
(
id
=
asset_id
)
if
keyword
:
if
keyword
:
asset_find
=
asset_find
.
filter
(
asset_find
=
asset_find
.
filter
(
Q
(
hostname__contains
=
keyword
)
|
Q
(
hostname__contains
=
keyword
)
|
...
...
jperm/perm_api.py
View file @
35c818f4
...
@@ -43,13 +43,16 @@ def get_group_user_perm(ob):
...
@@ -43,13 +43,16 @@ def get_group_user_perm(ob):
asset_groups
=
rule
.
asset_group
.
all
()
asset_groups
=
rule
.
asset_group
.
all
()
assets
=
rule
.
asset
.
all
()
assets
=
rule
.
asset
.
all
()
perm_roles
=
rule
.
role
.
all
()
perm_roles
=
rule
.
role
.
all
()
group_assets
=
[]
for
asset_group
in
asset_groups
:
group_assets
.
extend
(
asset_group
.
asset_set
.
all
())
# 获取一个规则授权的角色和对应主机
# 获取一个规则授权的角色和对应主机
for
role
in
perm_roles
:
for
role
in
perm_roles
:
if
perm_role
.
get
(
'role'
):
if
perm_role
.
get
(
role
):
perm_role
[
role
][
'asset'
]
=
perm_role
[
role
]
.
get
(
'asset'
,
set
())
.
union
(
set
(
assets
))
perm_role
[
role
][
'asset'
]
=
perm_role
[
role
]
.
get
(
'asset'
,
set
())
.
union
(
set
(
assets
)
.
union
(
set
(
group_assets
))
)
perm_role
[
role
][
'asset_group'
]
=
perm_role
[
role
]
.
get
(
'asset_group'
,
set
())
.
union
(
set
(
asset_groups
))
perm_role
[
role
][
'asset_group'
]
=
perm_role
[
role
]
.
get
(
'asset_group'
,
set
())
.
union
(
set
(
asset_groups
))
else
:
else
:
perm_role
[
role
]
=
{
'asset'
:
set
(
assets
),
'asset_group'
:
set
(
asset_groups
)}
perm_role
[
role
]
=
{
'asset'
:
set
(
assets
)
.
union
(
set
(
group_assets
))
,
'asset_group'
:
set
(
asset_groups
)}
# 获取一个规则用户授权的资产
# 获取一个规则用户授权的资产
for
asset
in
assets
:
for
asset
in
assets
:
...
...
jperm/views.py
View file @
35c818f4
...
@@ -23,12 +23,14 @@ def perm_rule_list(request):
...
@@ -23,12 +23,14 @@ def perm_rule_list(request):
"""
"""
# 渲染数据
# 渲染数据
header_title
,
path1
,
path2
=
"授权规则"
,
"规则管理"
,
"查看规则"
header_title
,
path1
,
path2
=
"授权规则"
,
"规则管理"
,
"查看规则"
# 获取所有规则
# 获取所有规则
rules_list
=
PermRule
.
objects
.
all
()
rules_list
=
PermRule
.
objects
.
all
()
rule_id
=
request
.
GET
.
get
(
'id'
)
# TODO: 搜索和分页
# TODO: 搜索和分页
keyword
=
request
.
GET
.
get
(
'search'
,
''
)
keyword
=
request
.
GET
.
get
(
'search'
,
''
)
if
rule_id
:
rules_list
=
rules_list
.
filter
(
id
=
rule_id
)
if
keyword
:
if
keyword
:
rules_list
=
rules_list
.
filter
(
Q
(
name
=
keyword
))
rules_list
=
rules_list
.
filter
(
Q
(
name
=
keyword
))
...
@@ -226,12 +228,15 @@ def perm_role_list(request):
...
@@ -226,12 +228,15 @@ def perm_role_list(request):
# 获取所有系统角色
# 获取所有系统角色
roles_list
=
PermRole
.
objects
.
all
()
roles_list
=
PermRole
.
objects
.
all
()
role_id
=
request
.
GET
.
get
(
'id'
)
# TODO: 搜索和分页
# TODO: 搜索和分页
keyword
=
request
.
GET
.
get
(
'search'
,
''
)
keyword
=
request
.
GET
.
get
(
'search'
,
''
)
if
keyword
:
if
keyword
:
roles_list
=
roles_list
.
filter
(
Q
(
name
=
keyword
))
roles_list
=
roles_list
.
filter
(
Q
(
name
=
keyword
))
if
role_id
:
roles_list
=
roles_list
.
filter
(
id
=
role_id
)
roles_list
,
p
,
roles
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
roles_list
,
request
)
roles_list
,
p
,
roles
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
roles_list
,
request
)
return
my_render
(
'jperm/perm_role_list.html'
,
locals
(),
request
)
return
my_render
(
'jperm/perm_role_list.html'
,
locals
(),
request
)
...
...
jumpserver/templatetags/mytags.py
View file @
35c818f4
...
@@ -7,7 +7,7 @@ import time
...
@@ -7,7 +7,7 @@ import time
from
django
import
template
from
django
import
template
from
jperm.models
import
PermPush
from
jperm.models
import
PermPush
from
jumpserver.api
import
*
from
jumpserver.api
import
*
from
j
asset.models
import
AssetAlias
from
j
perm.perm_api
import
get_group_user_perm
register
=
template
.
Library
()
register
=
template
.
Library
()
...
@@ -294,3 +294,13 @@ def get_disk_info(disk_info):
...
@@ -294,3 +294,13 @@ def get_disk_info(disk_info):
except
Exception
:
except
Exception
:
disk_size
=
''
disk_size
=
''
return
disk_size
return
disk_size
@register.filter
(
name
=
'user_perm_asset_num'
)
def
user_perm_asset_num
(
user_id
):
user
=
get_object
(
User
,
id
=
user_id
)
if
user
:
user_perm_info
=
get_group_user_perm
(
user
)
return
len
(
user_perm_info
.
get
(
'asset'
)
.
keys
())
else
:
return
0
juser/views.py
View file @
35c818f4
...
@@ -231,24 +231,20 @@ def user_list(request):
...
@@ -231,24 +231,20 @@ def user_list(request):
@require_role
(
role
=
'user'
)
@require_role
(
role
=
'user'
)
def
user_detail
(
request
):
def
user_detail
(
request
):
header_title
,
path1
,
path2
=
'用户详情'
,
'用户管理'
,
'用户详情'
header_title
,
path1
,
path2
=
'用户详情'
,
'用户管理'
,
'用户详情'
# if request.session.get('role_id') == 0:
if
request
.
session
.
get
(
'role_id'
)
==
0
:
# user_id = request.user.id
user_id
=
request
.
user
.
id
# else:
else
:
# user_id = request.GET.get('id', '')
user_id
=
request
.
GET
.
get
(
'id'
,
''
)
# if request.session.get('role_id') == 1:
# user, dept = get_session_user_dept(request)
user
=
get_object
(
User
,
id
=
user_id
)
# if not validate(request, user=[user_id]):
if
not
user
:
# return HttpResponseRedirect('/')
user_id
=
request
.
GET
.
get
(
'id'
,
''
)
if
not
user_id
:
return
HttpResponseRedirect
(
'/juser/user_list/'
)
return
HttpResponseRedirect
(
'/juser/user_list/'
)
user
=
User
.
objects
.
get
(
id
=
user_id
)
# if user:
user_perm_info
=
get_group_user_perm
(
user
)
# pass
role_assets
=
user_perm_info
.
get
(
'role'
)
# asset_group_permed = user.get_asset_group()
user_log_ten
=
Log
.
objects
.
filter
(
user
=
user
.
username
)
.
order_by
(
'id'
)[
0
:
10
]
# logs_last = Log.objects.filter(user=user.name).order_by('-start_time')[0:10]
user_log_last
=
Log
.
objects
.
filter
(
user
=
user
.
username
)
.
order_by
(
'id'
)[
0
:
50
]
# logs_all = Log.objects.filter(user=user.name).order_by('-start_time')
user_log_last_num
=
len
(
user_log_last
)
# logs_num = len(logs_all)
return
my_render
(
'juser/user_detail.html'
,
locals
(),
request
)
return
my_render
(
'juser/user_detail.html'
,
locals
(),
request
)
...
@@ -406,11 +402,6 @@ def user_edit(request):
...
@@ -406,11 +402,6 @@ def user_edit(request):
return
my_render
(
'juser/user_edit.html'
,
locals
(),
request
)
return
my_render
(
'juser/user_edit.html'
,
locals
(),
request
)
# @require_role(role='admin')
def
user_edit_adm
(
request
):
pass
def
profile
(
request
):
def
profile
(
request
):
a
=
request
.
user
.
id
a
=
request
.
user
.
id
a
=
request
.
user
.
groups
a
=
request
.
user
.
groups
...
@@ -489,11 +480,3 @@ def down_key(request):
...
@@ -489,11 +480,3 @@ def down_key(request):
return
response
return
response
return
HttpResponse
(
'No Key File. Contact Admin.'
)
return
HttpResponse
(
'No Key File. Contact Admin.'
)
@require_role
(
role
=
'user'
)
def
RunCommand
(
request
):
if
request
.
method
==
'GET'
:
GUP
=
get_group_user_perm
(
request
.
user
)
print
GUP
assets
=
GUP
.
get
(
'asset'
)
return
render_to_response
(
'juser/run_command.html'
,
locals
(),
context_instance
=
RequestContext
(
request
))
\ No newline at end of file
templates/jasset/asset_list.html
View file @
35c818f4
...
@@ -222,7 +222,7 @@
...
@@ -222,7 +222,7 @@
var
url
=
'/jperm/role/get/?id='
+
$
(
this
).
attr
(
'value'
);
var
url
=
'/jperm/role/get/?id='
+
$
(
this
).
attr
(
'value'
);
var
href
=
$
(
this
).
attr
(
'href'
);
var
href
=
$
(
this
).
attr
(
'href'
);
var
new_url
=
'/jlog/web_terminal/?id='
+
$
(
this
).
attr
(
'value'
)
+
'&role='
;
var
new_url
=
'/jlog/web_terminal/?id='
+
$
(
this
).
attr
(
'value'
)
+
'&role='
;
var
hostname
=
$
(
this
).
closest
(
'tr'
).
find
(
'.hostname'
)[
0
].
innerHTML
;
var
hostname
=
$
(
this
).
closest
(
'tr'
).
find
(
'.hostname
a
'
)[
0
].
innerHTML
;
$
.
ajax
({
$
.
ajax
({
type
:
'GET'
,
type
:
'GET'
,
url
:
url
,
url
:
url
,
...
@@ -247,6 +247,7 @@
...
@@ -247,6 +247,7 @@
$
.
each
(
dataArray
,
function
(
index
,
value
){
$
.
each
(
dataArray
,
function
(
index
,
value
){
aUrl
+=
'<a onclick="windowOpen(this); return false" class="btn btn-xs btn-primary newa" href='
+
new_url
+
value
+
' value='
+
hostname
+
'>'
+
value
+
'</a> '
aUrl
+=
'<a onclick="windowOpen(this); return false" class="btn btn-xs btn-primary newa" href='
+
new_url
+
value
+
' value='
+
hostname
+
'>'
+
value
+
'</a> '
});
});
console
.
log
(
aUrl
);
layer
.
alert
(
aUrl
,
{
layer
.
alert
(
aUrl
,
{
skin
:
'layui-layer-molv'
,
skin
:
'layui-layer-molv'
,
title
:
'多个角色,请选择一个连接'
,
title
:
'多个角色,请选择一个连接'
,
...
...
templates/juser/user_detail.html
View file @
35c818f4
...
@@ -76,6 +76,36 @@
...
@@ -76,6 +76,36 @@
</table>
</table>
</td>
</td>
</tr>
</tr>
<tr>
<td
class=
"text-navy"
>
授权主机数量
</td>
<td>
{{ user_perm_info.asset.keys | length }}
</td>
</tr>
<tr>
<td
class=
"text-navy"
>
授权主机组
</td>
<td>
<table
class=
"table"
>
{% for group in user_perm_info.asset_group.keys%}
<tr>
<td><a
href=
"/jasset/group_list/?id={{ group.id }}"
>
{{ group.name }}
</a></td>
</tr>
{% endfor %}
</table>
</td>
</tr>
<tr>
<td
class=
"text-navy"
>
授权规则
</td>
<td>
<table
class=
"table"
>
{% for rule in user_perm_info.rule%}
<tr>
<td><a
href=
"/jperm/role/?id={{ rule.id }}"
>
{{ rule.name }}
</a></td>
</tr>
{% endfor %}
</table>
</td>
</tr>
</table>
</table>
</div>
</div>
</div>
</div>
...
@@ -94,10 +124,6 @@
...
@@ -94,10 +124,6 @@
<i
class=
"fa fa-wrench"
></i>
<i
class=
"fa fa-wrench"
></i>
</a>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
Config option 1
</a>
</li>
<li><a
href=
"#"
>
Config option 2
</a>
</li>
</ul>
</ul>
<a
class=
"close-link"
>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
<i
class=
"fa fa-times"
></i>
...
@@ -106,33 +132,35 @@
...
@@ -106,33 +132,35 @@
</div>
</div>
<div
class=
"ibox-content ibox-heading"
>
<div
class=
"ibox-content ibox-heading"
>
<h3>
用户的所有授权主机
</h3>
<h3>
用户的所有授权主机
</h3>
<small><i
class=
"fa fa-map-marker"
></i>
这里包含了用户
所有的主机组和组
下的主机.
</small>
<small><i
class=
"fa fa-map-marker"
></i>
这里包含了用户
授权角色和角色
下的主机.
</small>
</div>
</div>
<div
class=
"ibox-content inspinia-timeline"
>
<div
class=
"ibox-content inspinia-timeline"
>
{# {% for group in user|get_user_asset_group %}#}
{% for role, assets in role_assets.items %}
{#
<div
class=
"timeline-item"
>
#}
<div
class=
"timeline-item"
>
{#
<div
class=
"row"
>
#}
<div
class=
"row"
>
{#
<div
class=
"col-xs-3 date"
>
#}
<div
class=
"col-xs-3 date"
>
{#
<i
class=
"fa fa-repeat"
></i>
#}
<i
class=
"fa fa-info"
></i>
{#
<b><a
href=
"/jperm/perm_list/?uid={{ user.id }}&agid={{ group.id }}"
>
{{ group.name }}
</a></b>
#}
<b>
{#
<br>
#}
<a
href=
"/jperm/role/&id={{ role.id }}"
>
{{ role.name }}
</a></b>
{#
<small
class=
"text-navy"
>
共: {{ group | group_asset_list_count }}台
</small>
#}
<br>
{#
</div>
#}
<small
class=
"text-navy"
>
共: {{ assets.asset | length }}台
</small>
{#
<div
class=
"col-xs-7 content no-top-border"
>
#}
</div>
{#
<p
class=
"m-b-xs"
><strong>
{{ group.comment }}
</strong></p>
#}
<div
class=
"col-xs-7 content no-top-border"
>
{#
<p>
#}
<p
class=
"m-b-xs"
>
{# {% for asset in group|group_asset_list %}#}
<strong>
{{ role.comment }}
</strong></p>
{# {{ asset.ip }}
<br>
#}
<p>
{# {% endfor %}#}
{% for asset in assets.asset %}
{#
</p>
#}
<a
href=
"/jasset/asset_list/?id={{ asset.id }}"
>
{{ asset.hostname }}
</a><br>
{#
<p></p>
#}
{% endfor %}
{#
</div>
#}
</p>
{#
</div>
#}
<p></p>
{#
</div>
#}
</div>
{# {% endfor %}#}
</div>
{# {% if not user|get_user_asset_group %}#}
</div>
{# (无)#}
{% endfor %}
{# {% endif %}#}
{% ifequal '{{ asset.asset | length }}' 0 %}
(无)
{% endifequal %}
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -147,8 +175,9 @@
...
@@ -147,8 +175,9 @@
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
"ibox-content"
>
<div
id=
"last"
>
<div
id=
"last"
>
<div
class=
"feed-activity-list"
>
<div
class=
"feed-activity-list"
>
{% for log in
logs_last
%}
{% for log in
user_log_ten
%}
<div
class=
"feed-element"
>
<div
class=
"feed-element"
>
<a
href=
"profile.html"
class=
"pull-left"
>
<a
href=
"profile.html"
class=
"pull-left"
>
<img
alt=
"image"
class=
"img-circle"
src=
"/static/img/{{ session_role_id | to_avatar }}.png"
>
<img
alt=
"image"
class=
"img-circle"
src=
"/static/img/{{ session_role_id | to_avatar }}.png"
>
...
@@ -161,18 +190,18 @@
...
@@ -161,18 +190,18 @@
</div>
</div>
</div>
</div>
{% endfor %}
{% endfor %}
{% if not
logs_last
%}
{% if not
user_log_ten
%}
(暂无)
(暂无)
{% endif %}
{% endif %}
</div>
</div>
{% if
logs
_num > 10 %}
{% if
user_log_last
_num > 10 %}
<button
id=
"show"
class=
"btn btn-primary btn-block m-t"
><i
class=
"fa fa-arrow-down"
></i>
Show
All
</button>
<button
id=
"show"
class=
"btn btn-primary btn-block m-t"
><i
class=
"fa fa-arrow-down"
></i>
Show
More
</button>
{% endif %}
{% endif %}
</div>
</div>
<div
id=
"all"
style=
"display: none"
>
<div
id=
"all"
style=
"display: none"
>
<div
class=
"feed-activity-list"
>
<div
class=
"feed-activity-list"
>
{% for log in
logs_all
%}
{% for log in
user_log_last
%}
<div
class=
"feed-element"
>
<div
class=
"feed-element"
>
<a
href=
"profile.html"
class=
"pull-left"
>
<a
href=
"profile.html"
class=
"pull-left"
>
<img
alt=
"image"
class=
"img-circle"
src=
"/static/img/{{ session_role_id | to_avatar }}.png"
>
<img
alt=
"image"
class=
"img-circle"
src=
"/static/img/{{ session_role_id | to_avatar }}.png"
>
...
...
templates/juser/user_list.html
View file @
35c818f4
...
@@ -47,7 +47,8 @@
...
@@ -47,7 +47,8 @@
<th
class=
"text-center"
>
用户名
</th>
<th
class=
"text-center"
>
用户名
</th>
<th
class=
"text-center"
>
姓名
</th>
<th
class=
"text-center"
>
姓名
</th>
<th
class=
"text-center"
>
小组
</th>
<th
class=
"text-center"
>
小组
</th>
<th
class=
"text-center"
>
角色
</th>
<th
class=
"text-center"
>
权限
</th>
<th
class=
"text-center"
>
主机数量
</th>
<th
class=
"text-center"
>
激活
</th>
<th
class=
"text-center"
>
激活
</th>
<th
class=
"text-center"
>
下载密钥
</th>
<th
class=
"text-center"
>
下载密钥
</th>
<th
class=
"text-center"
>
操作
</th>
<th
class=
"text-center"
>
操作
</th>
...
@@ -59,10 +60,11 @@
...
@@ -59,10 +60,11 @@
<td
class=
"text-center"
>
<td
class=
"text-center"
>
<input
type=
"checkbox"
name=
"checked"
value=
"{{ user.id }}"
>
<input
type=
"checkbox"
name=
"checked"
value=
"{{ user.id }}"
>
</td>
</td>
<td
class=
"text-center"
>
{{ user.username }}
</td>
<td
class=
"text-center"
>
<a
href=
"../user_detail/?id={{ user.id }}"
>
{{ user.username }}
</a>
</td>
<td
class=
"text-center"
>
{{ user.name }}
</td>
<td
class=
"text-center"
>
{{ user.name }}
</td>
<td
class=
"text-center"
title=
"{% for user_group in user.group.all %} {{ user_group.name }} {% endfor %}"
>
{{ user.group.all | groups2str }}
</td>
<td
class=
"text-center"
title=
"{% for user_group in user.group.all %} {{ user_group.name }} {% endfor %}"
>
{{ user.group.all | groups2str }}
</td>
<td
class=
"text-center"
>
{{ user.id | get_role }}
</td>
<td
class=
"text-center"
>
{{ user.id | get_role }}
</td>
<th
class=
"text-center"
>
{{ user.id | user_perm_asset_num }}
</th>
<td
class=
"text-center"
>
{{ user.is_active | bool2str }}
</td>
<td
class=
"text-center"
>
{{ user.is_active | bool2str }}
</td>
<td
class=
"text-center"
>
<td
class=
"text-center"
>
{% if user.username|key_exist %}
{% if user.username|key_exist %}
...
@@ -72,7 +74,6 @@
...
@@ -72,7 +74,6 @@
{% endif %}
{% endif %}
</td>
</td>
<td
class=
"text-center"
>
<td
class=
"text-center"
>
<a
href=
"../user_detail/?id={{ user.id }}"
class=
"btn btn-xs btn-primary"
>
详情
</a>
<a
href=
"../user_edit/?id={{ user.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
<a
href=
"../user_edit/?id={{ user.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
<a
value=
"{{ user.uuid }}"
class=
"btn btn-xs btn-warning email"
>
Email
</a>
<a
value=
"{{ user.uuid }}"
class=
"btn btn-xs btn-warning email"
>
Email
</a>
<a
value=
"../user_del/?id={{ user.id }}"
class=
"btn btn-xs btn-danger del {% if user.username == 'admin' %} disabled {% endif %}"
>
删除
</a>
<a
value=
"../user_del/?id={{ user.id }}"
class=
"btn btn-xs btn-danger del {% if user.username == 'admin' %} disabled {% endif %}"
>
删除
</a>
...
...
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