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
907c2c7e
Commit
907c2c7e
authored
9 years ago
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
资产修改基本完成
parent
960e45d0
No related merge requests found
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
196 additions
and
192 deletions
+196
-192
asset_api.py
jasset/asset_api.py
+8
-1
urls.py
jasset/urls.py
+3
-1
views.py
jasset/views.py
+20
-24
models.py
jperm/models.py
+47
-39
urls.py
jperm/urls.py
+24
-26
views.py
jperm/views.py
+0
-0
urls.py
jumpserver/urls.py
+1
-1
urls.py
juser/urls.py
+1
-3
views.py
juser/views.py
+9
-36
asset_add.html
templates/jasset/asset_add.html
+2
-2
dept_host_ajax.html
templates/jasset/dept_host_ajax.html
+0
-4
group_list.html
templates/jasset/group_list.html
+43
-27
group_list.html
templates/juser/group_list.html
+19
-6
user_list.html
templates/juser/user_list.html
+16
-19
nav.html
templates/nav.html
+3
-3
No files found.
jasset/asset_api.py
View file @
907c2c7e
...
@@ -37,8 +37,15 @@ def db_asset_add(**kwargs):
...
@@ -37,8 +37,15 @@ def db_asset_add(**kwargs):
add asset to db
add asset to db
添加主机时数据库操作函数
添加主机时数据库操作函数
"""
"""
group_id_list
=
kwargs
.
pop
(
'groups'
)
asset
=
Asset
(
**
kwargs
)
asset
.
save
()
Asset
(
**
kwargs
)
.
save
()
group_select
=
[]
for
group_id
in
group_id_list
:
group
=
AssetGroup
.
objects
.
filter
(
id
=
group_id
)
group_select
.
extend
(
group
)
asset
.
group
=
group_select
#
#
...
...
This diff is collapsed.
Click to expand it.
jasset/urls.py
View file @
907c2c7e
...
@@ -7,6 +7,7 @@ urlpatterns = patterns('',
...
@@ -7,6 +7,7 @@ urlpatterns = patterns('',
# url(r"^host_add_multi/$", host_add_batch),
# url(r"^host_add_multi/$", host_add_batch),
url
(
r'^group_add/$'
,
group_add
),
url
(
r'^group_add/$'
,
group_add
),
url
(
r'^group_list/$'
,
group_list
),
url
(
r'^group_list/$'
,
group_list
),
url
(
r'^group_del/$'
,
group_del
),
url
(
r'^asset_list/$'
,
asset_list
),
url
(
r'^asset_list/$'
,
asset_list
),
url
(
r'^asset_del/$'
,
asset_del
),
url
(
r'^asset_del/$'
,
asset_del
),
url
(
r"^asset_detail/$"
,
asset_detail
),
url
(
r"^asset_detail/$"
,
asset_detail
),
...
@@ -19,7 +20,7 @@ urlpatterns = patterns('',
...
@@ -19,7 +20,7 @@ urlpatterns = patterns('',
# url(r'^group_list/$', group_list),
# url(r'^group_list/$', group_list),
# url(r'^group_detail/$', group_detail),
# url(r'^group_detail/$', group_detail),
# url(r'^group_del_host/$', group_del_host),
# url(r'^group_del_host/$', group_del_host),
# url(r'^group_del/$', group_del),
# url(r'^host_edit/batch/$', host_edit_batch),
# url(r'^host_edit/batch/$', host_edit_batch),
# url(r'^host_edit_common/batch/$', host_edit_common_batch),
# url(r'^host_edit_common/batch/$', host_edit_common_batch),
)
)
\ No newline at end of file
This diff is collapsed.
Click to expand it.
jasset/views.py
View file @
907c2c7e
...
@@ -57,12 +57,27 @@ def group_list(request):
...
@@ -57,12 +57,27 @@ def group_list(request):
asset_group_list
=
AssetGroup
.
objects
.
all
()
asset_group_list
=
AssetGroup
.
objects
.
all
()
if
keyword
:
if
keyword
:
asset_group
s
=
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
))
asset_group_list
,
p
,
asset_groups
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
asset_group_list
,
request
)
asset_group_list
,
p
,
asset_groups
,
page_range
,
current_page
,
show_first
,
show_end
=
pages
(
asset_group_list
,
request
)
return
my_render
(
'jasset/group_list.html'
,
locals
(),
request
)
return
my_render
(
'jasset/group_list.html'
,
locals
(),
request
)
@require_role
(
'admin'
)
def
group_del
(
request
):
"""
del asset group
删除主机组
"""
group_ids
=
request
.
GET
.
get
(
'id'
,
''
)
group_id_list
=
group_ids
.
split
(
','
)
for
group_id
in
group_id_list
:
AssetGroup
.
objects
.
filter
(
id
=
group_id
)
.
delete
()
return
HttpResponse
(
u'删除成功'
)
@require_role
(
'admin'
)
@require_role
(
'admin'
)
def
asset_add
(
request
):
def
asset_add
(
request
):
"""
"""
...
@@ -70,10 +85,11 @@ def asset_add(request):
...
@@ -70,10 +85,11 @@ def asset_add(request):
添加资产
添加资产
"""
"""
header_title
,
path1
,
path2
=
u'添加资产'
,
u'资产管理'
,
u'添加资产'
header_title
,
path1
,
path2
=
u'添加资产'
,
u'资产管理'
,
u'添加资产'
asset_group_all
=
AssetGroup
.
objects
.
all
()
if
request
.
method
==
'POST'
:
if
request
.
method
==
'POST'
:
ip
=
request
.
POST
.
get
(
'ip'
)
ip
=
request
.
POST
.
get
(
'ip'
)
port
=
request
.
POST
.
get
(
'port'
)
port
=
request
.
POST
.
get
(
'port'
)
group
=
request
.
POST
.
getlist
(
'group
'
)
group
s
=
request
.
POST
.
getlist
(
'groups
'
)
use_default_auth
=
True
if
request
.
POST
.
getlist
(
'use_default_auth'
,
[])
else
False
use_default_auth
=
True
if
request
.
POST
.
getlist
(
'use_default_auth'
,
[])
else
False
is_active
=
True
if
request
.
POST
.
get
(
'is_active'
)
else
False
is_active
=
True
if
request
.
POST
.
get
(
'is_active'
)
else
False
comment
=
request
.
POST
.
get
(
'comment'
)
comment
=
request
.
POST
.
get
(
'comment'
)
...
@@ -96,7 +112,7 @@ def asset_add(request):
...
@@ -96,7 +112,7 @@ def asset_add(request):
else
:
else
:
db_asset_add
(
db_asset_add
(
ip
=
ip
,
port
=
port
,
use_default_auth
=
use_default_auth
,
is_active
=
is_active
,
comment
=
comment
,
ip
=
ip
,
port
=
port
,
use_default_auth
=
use_default_auth
,
is_active
=
is_active
,
comment
=
comment
,
username
=
username
,
password
=
password_encode
groups
=
groups
,
username
=
username
,
password
=
password_encode
)
)
msg
=
u'主机
%
s 添加成功'
%
ip
msg
=
u'主机
%
s 添加成功'
%
ip
...
@@ -447,27 +463,7 @@ def asset_detail(request):
...
@@ -447,27 +463,7 @@ def asset_detail(request):
#
#
# return HttpResponseRedirect('/jasset/group_detail/?id=%s' % group.id)
# return HttpResponseRedirect('/jasset/group_detail/?id=%s' % group.id)
#
#
#
# @require_admin
# def group_del(request):
# """ 删除主机组 """
# offset = request.GET.get('id', '')
# if offset == 'multi':
# len_list = request.POST.get("len_list")
# for i in range(int(len_list)):
# key = "id_list[" + str(i) + "]"
# gid = request.POST.get(key)
# if is_group_admin(request) and not validate(request, asset_group=[gid]):
# return httperror(request, '删除失败, 您无权删除!')
# BisGroup.objects.filter(id=gid).delete()
# else:
# gid = int(offset)
# if is_group_admin(request) and not validate(request, asset_group=[gid]):
# return httperror(request, '删除失败, 您无权删除!')
# BisGroup.objects.filter(id=gid).delete()
# return HttpResponseRedirect('/jasset/group_list/')
#
#
# @require_admin
# @require_admin
# def dept_host_ajax(request):
# def dept_host_ajax(request):
# """ 添加主机组时, 部门联动主机异步 """
# """ 添加主机组时, 部门联动主机异步 """
...
...
This diff is collapsed.
Click to expand it.
jperm/models.py
View file @
907c2c7e
import
datetime
import
datetime
from
uuidfield
import
UUIDField
from
django.db
import
models
from
django.db
import
models
from
juser.models
import
UserGroup
from
juser.models
import
User
,
User
Group
from
jasset.models
import
Asset
,
AssetGroup
from
jasset.models
import
Asset
,
AssetGroup
class
Perm
(
models
.
Model
):
class
UserPerm
(
models
.
Model
):
user_group
=
models
.
ForeignKey
(
UserGroup
)
user
=
models
.
ForeignKey
(
User
)
asset_group
=
models
.
ForeignKey
(
AssetGroup
)
asset
=
models
.
ForeignKey
(
Asset
,
null
=
True
)
asset_group
=
models
.
ForeignKey
(
AssetGroup
,
null
=
True
)
def
__unicode__
(
self
):
return
'
%
s_
%
s'
%
(
self
.
user_group
.
name
,
self
.
asset_group
.
name
)
class
CmdGroup
(
models
.
Model
):
name
=
models
.
CharField
(
max_length
=
50
,
unique
=
True
)
cmd
=
models
.
CharField
(
max_length
=
999
)
comment
=
models
.
CharField
(
blank
=
True
,
null
=
True
,
max_length
=
50
)
def
__unicode__
(
self
):
def
__unicode__
(
self
):
return
self
.
name
return
self
.
user
.
name
class
Sudo
Perm
(
models
.
Model
):
class
Group
Perm
(
models
.
Model
):
user_group
=
models
.
ForeignKey
(
UserGroup
)
user_group
=
models
.
ForeignKey
(
UserGroup
)
user_runas
=
models
.
CharField
(
max_length
=
100
)
asset
=
models
.
ForeignKey
(
Asset
,
null
=
True
)
asset_group
=
models
.
ManyToManyField
(
AssetGroup
)
asset_group
=
models
.
ForeignKey
(
AssetGroup
,
null
=
True
)
cmd_group
=
models
.
ManyToManyField
(
CmdGroup
)
comment
=
models
.
CharField
(
max_length
=
30
,
null
=
True
,
blank
=
True
)
def
__unicode__
(
self
):
return
self
.
user_group
.
name
class
Apply
(
models
.
Model
):
uuid
=
UUIDField
(
auto
=
True
)
applyer
=
models
.
CharField
(
max_length
=
20
)
admin
=
models
.
CharField
(
max_length
=
20
)
approver
=
models
.
CharField
(
max_length
=
20
)
bisgroup
=
models
.
CharField
(
max_length
=
500
)
asset
=
models
.
CharField
(
max_length
=
500
)
comment
=
models
.
TextField
(
blank
=
True
,
null
=
True
)
status
=
models
.
IntegerField
(
max_length
=
2
)
date_add
=
models
.
DateTimeField
(
null
=
True
)
date_end
=
models
.
DateTimeField
(
null
=
True
)
read
=
models
.
IntegerField
(
max_length
=
2
)
def
__unicode__
(
self
):
def
__unicode__
(
self
):
return
self
.
applyer
return
self
.
user
.
name
# class CmdGroup(models.Model):
# name = models.CharField(max_length=50, unique=True)
# cmd = models.CharField(max_length=999)
# comment = models.CharField(blank=True, null=True, max_length=50)
#
# def __unicode__(self):
# return self.name
#
#
# class SudoPerm(models.Model):
# user_group = models.ForeignKey(UserGroup)
# user_runas = models.CharField(max_length=100)
# asset_group = models.ManyToManyField(AssetGroup)
# cmd_group = models.ManyToManyField(CmdGroup)
# comment = models.CharField(max_length=30, null=True, blank=True)
#
# def __unicode__(self):
# return self.user_group.name
#
#
# class Apply(models.Model):
# uuid = UUIDField(auto=True)
# applyer = models.CharField(max_length=20)
# admin = models.CharField(max_length=20)
# approver = models.CharField(max_length=20)
# bisgroup = models.CharField(max_length=500)
# asset = models.CharField(max_length=500)
# comment = models.TextField(blank=True, null=True)
# status = models.IntegerField(max_length=2)
# date_add = models.DateTimeField(null=True)
# date_end = models.DateTimeField(null=True)
# read = models.IntegerField(max_length=2)
#
# def __unicode__(self):
# return self.applyer
This diff is collapsed.
Click to expand it.
jperm/urls.py
View file @
907c2c7e
...
@@ -3,31 +3,29 @@ from jperm.views import *
...
@@ -3,31 +3,29 @@ from jperm.views import *
urlpatterns
=
patterns
(
'jperm.views'
,
urlpatterns
=
patterns
(
'jperm.views'
,
# Examples:
# Examples:
# url(r'^$', 'jumpserver.views.home', name='home'),
(
r'^user/$'
,
user_perm
),
# url(r'^blog/', include('blog.urls')),
# (r'^dept_perm_edit/$', 'dept_perm_edit'),
# (r'^perm_list/$', view_splitter, {'su': perm_list, 'adm': perm_list_adm}),
# (r'^dept_perm_list/$', 'dept_perm_list'),
# (r'^perm_user_detail/$', 'perm_user_detail'),
# (r'^perm_detail/$', 'perm_detail'),
# (r'^perm_del/$', 'perm_del'),
# (r'^perm_asset_detail/$', 'perm_asset_detail'),
# (r'^sudo_list/$', view_splitter, {'su': sudo_list, 'adm': sudo_list_adm}),
# (r'^sudo_del/$', 'sudo_del'),
# (r'^sudo_edit/$', view_splitter, {'su': sudo_edit, 'adm': sudo_edit_adm}),
# (r'^sudo_refresh/$', 'sudo_refresh'),
# (r'^sudo_detail/$', 'sudo_detail'),
# (r'^cmd_add/$', view_splitter, {'su': cmd_add, 'adm': cmd_add_adm}),
# (r'^cmd_list/$', 'cmd_list'),
# (r'^cmd_del/$', 'cmd_del'),
# (r'^cmd_edit/$', 'cmd_edit'),
# (r'^cmd_detail/$', 'cmd_detail'),
# (r'^apply/$', 'perm_apply'),
# (r'^apply_show/(\w+)/$', 'perm_apply_log'),
# (r'^apply_exec/$', 'perm_apply_exec'),
# (r'^apply_info/$', 'perm_apply_info'),
# (r'^apply_del/$', 'perm_apply_del'),
# (r'^apply_search/$', 'perm_apply_search'),
(
r'^perm_edit/$'
,
view_splitter
,
{
'su'
:
perm_edit
,
'adm'
:
perm_edit_adm
}),
(
r'^dept_perm_edit/$'
,
'dept_perm_edit'
),
(
r'^perm_list/$'
,
view_splitter
,
{
'su'
:
perm_list
,
'adm'
:
perm_list_adm
}),
(
r'^dept_perm_list/$'
,
'dept_perm_list'
),
(
r'^perm_user_detail/$'
,
'perm_user_detail'
),
(
r'^perm_detail/$'
,
'perm_detail'
),
(
r'^perm_del/$'
,
'perm_del'
),
(
r'^perm_asset_detail/$'
,
'perm_asset_detail'
),
(
r'^sudo_list/$'
,
view_splitter
,
{
'su'
:
sudo_list
,
'adm'
:
sudo_list_adm
}),
(
r'^sudo_del/$'
,
'sudo_del'
),
(
r'^sudo_edit/$'
,
view_splitter
,
{
'su'
:
sudo_edit
,
'adm'
:
sudo_edit_adm
}),
(
r'^sudo_refresh/$'
,
'sudo_refresh'
),
(
r'^sudo_detail/$'
,
'sudo_detail'
),
(
r'^cmd_add/$'
,
view_splitter
,
{
'su'
:
cmd_add
,
'adm'
:
cmd_add_adm
}),
(
r'^cmd_list/$'
,
'cmd_list'
),
(
r'^cmd_del/$'
,
'cmd_del'
),
(
r'^cmd_edit/$'
,
'cmd_edit'
),
(
r'^cmd_detail/$'
,
'cmd_detail'
),
(
r'^apply/$'
,
'perm_apply'
),
(
r'^apply_show/(\w+)/$'
,
'perm_apply_log'
),
(
r'^apply_exec/$'
,
'perm_apply_exec'
),
(
r'^apply_info/$'
,
'perm_apply_info'
),
(
r'^apply_del/$'
,
'perm_apply_del'
),
(
r'^apply_search/$'
,
'perm_apply_search'
),
)
)
This diff is collapsed.
Click to expand it.
jperm/views.py
View file @
907c2c7e
This diff is collapsed.
Click to expand it.
jumpserver/urls.py
View file @
907c2c7e
...
@@ -16,7 +16,7 @@ urlpatterns = patterns('',
...
@@ -16,7 +16,7 @@ urlpatterns = patterns('',
(
r'^juser/'
,
include
(
'juser.urls'
)),
(
r'^juser/'
,
include
(
'juser.urls'
)),
(
r'^jasset/'
,
include
(
'jasset.urls'
)),
(
r'^jasset/'
,
include
(
'jasset.urls'
)),
# (r'^jlog/', include('jlog.urls')),
# (r'^jlog/', include('jlog.urls')),
#
(r'^jperm/', include('jperm.urls')),
(
r'^jperm/'
,
include
(
'jperm.urls'
)),
(
r'^node_auth/'
,
'jumpserver.views.node_auth'
),
(
r'^node_auth/'
,
'jumpserver.views.node_auth'
),
)
)
This diff is collapsed.
Click to expand it.
juser/urls.py
View file @
907c2c7e
...
@@ -10,7 +10,6 @@ urlpatterns = patterns('juser.views',
...
@@ -10,7 +10,6 @@ urlpatterns = patterns('juser.views',
(
r'^group_add/$'
,
group_add
),
(
r'^group_add/$'
,
group_add
),
(
r'^group_list/$'
,
group_list
),
(
r'^group_list/$'
,
group_list
),
(
r'^group_del/$'
,
group_del
),
(
r'^group_del/$'
,
group_del
),
(
r'^group_del_ajax'
,
group_del_ajax
),
(
r'^group_edit/$'
,
group_edit
),
(
r'^group_edit/$'
,
group_edit
),
(
r'^user_add/$'
,
user_add
),
(
r'^user_add/$'
,
user_add
),
(
r'^user_list/$'
,
user_list
),
(
r'^user_list/$'
,
user_list
),
...
@@ -19,8 +18,7 @@ urlpatterns = patterns('juser.views',
...
@@ -19,8 +18,7 @@ urlpatterns = patterns('juser.views',
(
r'^forget_password/$'
,
forget_password
),
(
r'^forget_password/$'
,
forget_password
),
(
r'^user_detail/$'
,
'user_detail'
),
(
r'^user_detail/$'
,
'user_detail'
),
(
r'^user_del/$'
,
'user_del'
),
(
r'^user_del/$'
,
'user_del'
),
(
r'^user_del_ajax/$'
,
'user_del_ajax'
),
(
r'^user_edit/$'
,
user_edit
),
(
r'^user_edit/$'
,
view_splitter
,
{
'su'
:
user_edit
,
'adm'
:
user_edit_adm
}),
(
r'^profile/$'
,
'profile'
),
(
r'^profile/$'
,
'profile'
),
(
r'^change_info/$'
,
'change_info'
),
(
r'^change_info/$'
,
'change_info'
),
(
r'^regen_ssh_key/$'
,
'regen_ssh_key'
),
(
r'^regen_ssh_key/$'
,
'regen_ssh_key'
),
...
...
This diff is collapsed.
Click to expand it.
juser/views.py
View file @
907c2c7e
...
@@ -81,21 +81,14 @@ def group_del(request):
...
@@ -81,21 +81,14 @@ def group_del(request):
del a group
del a group
删除用户组
删除用户组
"""
"""
group_id
=
request
.
GET
.
get
(
'id'
,
''
)
group_ids
=
request
.
GET
.
get
(
'id'
,
''
)
if
not
group_id
:
group_id_list
=
group_ids
.
split
(
','
)
return
HttpResponseRedirect
(
'/'
)
for
group_id
in
group_id_list
:
UserGroup
.
objects
.
filter
(
id
=
group_id
)
.
delete
()
return
HttpResponseRedirect
(
'/juser/group_list/'
)
@require_role
(
role
=
'super'
)
def
group_del_ajax
(
request
):
group_ids
=
request
.
POST
.
get
(
'group_ids'
)
group_ids
=
group_ids
.
split
(
','
)
for
group_id
in
group_ids
:
UserGroup
.
objects
.
filter
(
id
=
group_id
)
.
delete
()
UserGroup
.
objects
.
filter
(
id
=
group_id
)
.
delete
()
return
HttpResponse
(
'删除成功'
)
return
HttpResponse
(
'删除成功'
)
# @require_role(role='admin')
# @require_role(role='admin')
# def group_list_adm(request):
# def group_list_adm(request):
# header_title, path1, path2 = '查看部门小组', '用户管理', '查看小组'
# header_title, path1, path2 = '查看部门小组', '用户管理', '查看小组'
...
@@ -424,30 +417,10 @@ def user_detail(request):
...
@@ -424,30 +417,10 @@ def user_detail(request):
@require_role
(
role
=
'admin'
)
@require_role
(
role
=
'admin'
)
def
user_del
(
request
):
def
user_del
(
request
):
user_id
=
request
.
GET
.
get
(
'id'
,
''
)
user_ids
=
request
.
GET
.
get
(
'id'
,
''
)
if
not
user_id
:
user_id_list
=
user_ids
.
split
(
','
)
return
HttpResponseRedirect
(
'/juser/user_list/'
)
for
user_id
in
user_id_list
:
User
.
objects
.
filter
(
id
=
user_id
)
.
delete
()
user
=
get_object
(
User
,
id
=
user_id
)
if
user
and
user
.
username
!=
'admin'
:
user
.
delete
()
server_del_user
(
user
.
username
)
return
HttpResponseRedirect
(
'/juser/user_list/'
)
@require_role
(
role
=
'admin'
)
def
user_del_ajax
(
request
):
user_ids
=
request
.
POST
.
get
(
'ids'
)
user_ids
=
user_ids
.
split
(
','
)
if
request
.
session
.
get
(
'role_id'
,
''
)
==
1
:
if
not
validate
(
request
,
user
=
user_ids
):
return
"error"
for
user_id
in
user_ids
:
user
=
get_object
(
User
,
id
=
user_id
)
if
user
and
user
.
username
!=
'admin'
:
user
.
delete
()
server_del_user
(
user
.
username
)
return
HttpResponse
(
'删除成功'
)
return
HttpResponse
(
'删除成功'
)
...
...
This diff is collapsed.
Click to expand it.
templates/jasset/asset_add.html
View file @
907c2c7e
...
@@ -80,8 +80,8 @@
...
@@ -80,8 +80,8 @@
<label
for=
"groups"
class=
"col-sm-2 control-label"
>
所属主机组
</label>
<label
for=
"groups"
class=
"col-sm-2 control-label"
>
所属主机组
</label>
<div
class=
"col-sm-8"
>
<div
class=
"col-sm-8"
>
<select
id=
"groups"
name=
"groups"
class=
"form-control m-b"
multiple
size=
"10"
>
<select
id=
"groups"
name=
"groups"
class=
"form-control m-b"
multiple
size=
"10"
>
{% for
g in egroup
%}
{% for
asset_group in asset_group_all
%}
<option
type=
"checkbox"
value=
"{{
g.id }}"
>
{{ g.name }} {% if g.comment %} --- {{ g
.comment }} {% endif %}
</option>
<option
type=
"checkbox"
value=
"{{
asset_group.id }}"
>
{{ asset_group.name }} {% if asset_group.comment %} --- {{ asset_group
.comment }} {% endif %}
</option>
{% endfor %}
{% endfor %}
</select>
</select>
</div>
</div>
...
...
This diff is collapsed.
Click to expand it.
templates/jasset/dept_host_ajax.html
deleted
100644 → 0
View file @
960e45d0
{% for host in hosts %}
<option
value=
"{{ host.id }}"
>
{{ host.ip }}
</option>
{% endfor %}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
templates/jasset/group_list.html
View file @
907c2c7e
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
<div
class=
"ibox-content"
>
<div
class=
"ibox-content"
>
<div
class=
""
>
<div
class=
""
>
<a
target=
"_blank"
href=
"/jasset/group_add/"
class=
"btn btn-sm btn-primary "
>
添加主机组
</a>
<a
target=
"_blank"
href=
"/jasset/group_add/"
class=
"btn btn-sm btn-primary "
>
添加主机组
</a>
<a
target=
"_blank"
class=
"btn btn-sm btn-danger"
id=
"del_check"
>
删除所选
</a>
<form
id=
"search_form"
method=
"get"
action=
""
class=
"pull-right mail-search"
>
<form
id=
"search_form"
method=
"get"
action=
""
class=
"pull-right mail-search"
>
<div
class=
"input-group"
>
<div
class=
"input-group"
>
<input
type=
"text"
class=
"form-control input-sm"
id=
"search_input"
name=
"keyword"
placeholder=
"Search"
>
<input
type=
"text"
class=
"form-control input-sm"
id=
"search_input"
name=
"keyword"
placeholder=
"Search"
>
...
@@ -54,15 +55,15 @@
...
@@ -54,15 +55,15 @@
{% for asset_group in asset_groups.object_list %}
{% for asset_group in asset_groups.object_list %}
<tr
class=
"gradeX"
>
<tr
class=
"gradeX"
>
<td
class=
"text-center"
name=
"id"
value=
"{{ asset_group.id }}"
data-editable=
'false'
>
<td
class=
"text-center"
name=
"id"
value=
"{{ asset_group.id }}"
data-editable=
'false'
>
<input
name=
"id"
value=
"{{
post
.id }}"
type=
"checkbox"
class=
"i-checks"
>
<input
name=
"id"
value=
"{{
asset_group
.id }}"
type=
"checkbox"
class=
"i-checks"
>
</td>
</td>
<td
class=
"text-center"
>
{{ asset_group.name }}
</td>
<td
class=
"text-center"
>
{{ asset_group.name }}
</td>
<td
class=
"text-center"
>
<a
href=
"/jasset/group_detail/?id={{
post
.id }}"
>
{{ asset_group.asset_set.count }}
</a>
</td>
<td
class=
"text-center"
>
<a
href=
"/jasset/group_detail/?id={{
asset_group
.id }}"
>
{{ asset_group.asset_set.count }}
</a>
</td>
<td
class=
"text-center"
>
{{ asset_group.comment }}
</td>
<td
class=
"text-center"
>
{{ asset_group.comment }}
</td>
<td
class=
"text-center"
>
<td
class=
"text-center"
>
<a
href=
"/jasset/group_detail/?id={{
post
.id }}"
class=
"btn btn-xs btn-info"
>
详情
</a>
<a
href=
"/jasset/group_detail/?id={{
asset_group
.id }}"
class=
"btn btn-xs btn-info"
>
详情
</a>
<a
href=
"/jasset/group_edit/?id={{
post
.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
<a
href=
"/jasset/group_edit/?id={{
asset_group
.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</a>
<a
href=
"/jasset/group_del/?id={{ post.id }}
"
class=
"btn btn-xs btn-danger"
>
删除
</a>
<a
value=
"/jasset/group_del/?id={{ asset_group.id }}"
id=
"del
"
class=
"btn btn-xs btn-danger"
>
删除
</a>
</td>
</td>
</tr>
</tr>
{% endfor %}
{% endfor %}
...
@@ -70,8 +71,9 @@
...
@@ -70,8 +71,9 @@
</table>
</table>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<div
class=
"col-sm-6"
>
<input
type=
"button"
id=
"del_button"
class=
"btn btn-danger btn-sm"
name=
"del_button"
value=
"删除"
onclick=
"del('contents_form')"
/>
<div
class=
"dataTables_info"
id=
"editable_info"
role=
"status"
aria-live=
"polite"
>
<!--<input type="button" id="alter_button" class="btn btn-warning btn-sm" name="alter_button" value="修改" onclick="alter('contents_form')" />-->
Showing {{ asset_groups.start_index }} to {{ asset_groups.end_index }} of {{ p.count }} entries
</div>
</div>
</div>
{% include 'paginator.html' %}
{% include 'paginator.html' %}
</div>
</div>
...
@@ -81,29 +83,43 @@
...
@@ -81,29 +83,43 @@
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block self_footer_js %}
<script>
<script>
function
del
(
form
)
{
$
(
document
).
ready
(
function
(){
var
checkboxes
=
document
.
getElementById
(
form
);
$
(
'#del'
).
click
(
function
(){
var
id_list
=
{};
var
row
=
$
(
this
).
closest
(
'tr'
);
var
j
=
0
;
$
.
get
(
for
(
var
i
=
0
;
i
<
checkboxes
.
elements
.
length
;
i
++
)
{
$
(
this
).
attr
(
'value'
),
if
(
checkboxes
.
elements
[
i
].
type
==
"checkbox"
&&
checkboxes
.
elements
[
i
].
checked
==
true
&&
checkboxes
.
elements
[
i
].
value
!=
"checkall"
)
{
{},
id_list
[
j
]
=
checkboxes
.
elements
[
i
].
value
;
function
(
data
){
j
++
;
row
.
remove
();
}
alert
(
data
)
}
}
if
(
confirm
(
"确定删除"
))
{
)
$
.
ajax
({
type
:
"POST"
,
url
:
"/jasset/group_del/?id=multi"
,
data
:
{
"id_list"
:
id_list
,
"len_list"
:
j
},
success
:
function
(
data
)
{
window
.
open
(
"/jasset/group_list/"
,
"_self"
);
}
});
});
}
}
$
(
'#del_check'
).
click
(
function
(){
var
check_array
=
[];
if
(
confirm
(
'确定删除'
)){
$
(
'tr.gradeX input:checked'
).
each
(
function
(){
check_array
.
push
(
$
(
this
).
attr
(
'value'
))
});
$
.
get
(
'/jasset/group_del/'
,
{
id
:
check_array
.
join
(
','
)},
function
(
data
){
$
(
'tr.gradeX input:checked'
).
closest
(
'tr'
).
remove
();
alert
(
data
);
}
)
}
})
});
</script>
</script>
{% endblock %}
{% endblock %}
This diff is collapsed.
Click to expand it.
templates/juser/group_list.html
View file @
907c2c7e
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
<div
class=
"ibox-content"
>
<div
class=
"ibox-content"
>
<div
class=
""
>
<div
class=
""
>
<a
target=
"_blank"
href=
"/juser/group_add/"
class=
"btn btn-sm btn-primary "
>
添加用户组
</a>
<a
target=
"_blank"
href=
"/juser/group_add/"
class=
"btn btn-sm btn-primary "
>
添加用户组
</a>
<a
id=
"del_btn"
class=
"btn btn-sm btn-danger "
>
删除所选
组
</a>
<a
id=
"del_btn"
class=
"btn btn-sm btn-danger "
>
删除所选
</a>
<form
id=
"search_form"
method=
"get"
action=
""
class=
"pull-right mail-search"
>
<form
id=
"search_form"
method=
"get"
action=
""
class=
"pull-right mail-search"
>
<div
class=
"input-group"
>
<div
class=
"input-group"
>
<input
type=
"text"
class=
"form-control input-sm"
id=
"search_input"
name=
"search"
placeholder=
"Search"
>
<input
type=
"text"
class=
"form-control input-sm"
id=
"search_input"
name=
"search"
placeholder=
"Search"
>
...
@@ -62,7 +62,7 @@
...
@@ -62,7 +62,7 @@
<td
class=
"text-center"
>
{{ group.comment }}
</td>
<td
class=
"text-center"
>
{{ group.comment }}
</td>
<td
class=
"text-center"
>
<td
class=
"text-center"
>
<a
href=
"../group_edit/?id={{ group.id }}"
class=
"btn btn-xs btn-info"
>
编辑
</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
value=
"../group_del/?id={{ group.id }}"
class=
"btn btn-xs btn-danger del
"
>
删除
</a>
</td>
</td>
</tr>
</tr>
{% endfor %}
{% endfor %}
...
@@ -71,7 +71,7 @@
...
@@ -71,7 +71,7 @@
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-sm-6"
>
<div
class=
"col-sm-6"
>
<div
class=
"dataTables_info"
id=
"editable_info"
role=
"status"
aria-live=
"polite"
>
<div
class=
"dataTables_info"
id=
"editable_info"
role=
"status"
aria-live=
"polite"
>
Showing {{
contacts.start_index }} to {{ contact
s.end_index }} of {{ p.count }} entries
Showing {{
user_groups.start_index }} to {{ user_group
s.end_index }} of {{ p.count }} entries
</div>
</div>
</div>
</div>
{% include 'paginator.html' %}
{% include 'paginator.html' %}
...
@@ -86,14 +86,27 @@
...
@@ -86,14 +86,27 @@
{% block self_footer_js %}
{% block self_footer_js %}
<script>
<script>
$
(
document
).
ready
(
function
(){
$
(
document
).
ready
(
function
(){
var
check_array
=
[];
$
(
'.del'
).
click
(
function
(){
var
row
=
$
(
this
).
closest
(
'tr'
);
$
.
get
(
$
(
this
).
attr
(
'value'
),
{},
function
(
data
){
row
.
remove
();
alert
(
data
);
}
)
});
$
(
'#del_btn'
).
click
(
function
(){
$
(
'#del_btn'
).
click
(
function
(){
var
check_array
=
[];
if
(
confirm
(
"确定删除"
))
{
if
(
confirm
(
"确定删除"
))
{
$
(
".gradeX input:checked"
).
each
(
function
()
{
$
(
".gradeX input:checked"
).
each
(
function
()
{
check_array
.
push
(
$
(
this
).
attr
(
"value"
))
check_array
.
push
(
$
(
this
).
attr
(
"value"
))
});
});
$
.
post
(
"/juser/group_del_ajax
/"
,
$
.
get
(
"/juser/group_del
/"
,
{
group_ids
:
check_array
.
join
(
","
)},
{
id
:
check_array
.
join
(
","
)},
function
(
result
){
function
(
result
){
alert
(
result
);
alert
(
result
);
$
(
".gradeX input:checked"
).
closest
(
"tr"
).
remove
();
$
(
".gradeX input:checked"
).
closest
(
"tr"
).
remove
();
...
...
This diff is collapsed.
Click to expand it.
templates/juser/user_list.html
View file @
907c2c7e
...
@@ -69,7 +69,7 @@
...
@@ -69,7 +69,7 @@
<a
href=
"../user_detail/?id={{ user.id }}"
class=
"btn btn-xs btn-primary"
>
详情
</a>
<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
href=
"../user_del/?id={{ user.id }}"
class=
"btn btn-xs btn-danger
{% 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>
</td>
</td>
</tr>
</tr>
{% endfor %}
{% endfor %}
...
@@ -93,32 +93,29 @@
...
@@ -93,32 +93,29 @@
{% block self_head_css_js %}
{% block self_head_css_js %}
<script>
<script>
$
(
document
).
ready
(
function
(){
$
(
document
).
ready
(
function
(){
{
#
$
(
".iframe"
).
on
(
'click'
,
function
()
{
#
}
$
(
'.del'
).
click
(
function
(){
{
#
var
url
=
$
(
this
).
attr
(
"value"
);
#
}
var
row
=
$
(
this
).
closest
(
'tr'
);
{
#
$
.
layer
({
#
}
$
.
get
(
{
#
type
:
2
,
#
}
$
(
this
).
attr
(
'value'
),
{
#
title
:
'用户详情'
,
#
}
{},
{
#
maxmin
:
true
,
#
}
function
(
data
){
{
#
shift
:
'top'
,
#
}
row
.
remove
();
{
#
border
:
[
2
,
0.3
,
'#1AB394'
],
#
}
alert
(
data
);
{
#
shade
:
[
0.5
,
'#000000'
],
#
}
}
{
#
shadeClose
:
true
,
#
}
)
{
#
area
:
[
'800px'
,
'600px'
],
#
}
});
{
#
iframe
:
{
src
:
url
}
#
}
{
#
})
#
}
{
#
});
#
}
var
check_array
=
[];
$
(
'#del_btn'
).
click
(
function
(){
$
(
'#del_btn'
).
click
(
function
(){
var
check_array
=
[];
if
(
confirm
(
"确定删除"
))
{
if
(
confirm
(
"确定删除"
))
{
$
(
".gradeX input:checked"
).
each
(
function
()
{
$
(
".gradeX input:checked"
).
each
(
function
()
{
check_array
.
push
(
$
(
this
).
attr
(
"value"
))
check_array
.
push
(
$
(
this
).
attr
(
"value"
))
});
});
$
.
post
(
"/juser/user_del
_ajax
/"
,
$
.
post
(
"/juser/user_del/"
,
{
id
s
:
check_array
.
join
(
","
)},
{
id
:
check_array
.
join
(
","
)},
function
(
data
){
function
(
data
){
$
(
".gradeX input:checked"
).
closest
(
"tr"
).
remove
();
$
(
".gradeX input:checked"
).
closest
(
"tr"
).
remove
();
window
.
open
(
"/juser/user_list/"
,
"_self"
);
alert
(
data
);
}
}
)
)
}
}
...
...
This diff is collapsed.
Click to expand it.
templates/nav.html
View file @
907c2c7e
...
@@ -28,15 +28,15 @@
...
@@ -28,15 +28,15 @@
<a
href=
"#"
><i
class=
"fa fa-edit"
></i>
<span
class=
"nav-label"
>
授权管理
</span><span
class=
"fa arrow"
></span></a>
<a
href=
"#"
><i
class=
"fa fa-edit"
></i>
<span
class=
"nav-label"
>
授权管理
</span><span
class=
"fa arrow"
></span></a>
<ul
class=
"nav nav-second-level"
>
<ul
class=
"nav nav-second-level"
>
<li
class=
"dept_perm_list dept_perm_edit"
>
<li
class=
"dept_perm_list dept_perm_edit"
>
<a
href=
"/jperm/
dept_perm_list/"
>
部门
授权
</a>
<a
href=
"/jperm/
user/"
>
用户
授权
</a>
</li>
</li>
<li
class=
"perm_list perm_edit perm_detail"
>
<li
class=
"perm_list perm_edit perm_detail"
>
<a
href=
"/jperm/perm_list/"
>
小
组授权
</a>
<a
href=
"/jperm/perm_list/"
>
用户
组授权
</a>
</li>
</li>
<li
class=
"sudo_list sudo_edit sudo_add cmd_list cmd_edit cmd_add sudo_detail"
>
<li
class=
"sudo_list sudo_edit sudo_add cmd_list cmd_edit cmd_add sudo_detail"
>
<a
href=
"/jperm/sudo_list/"
>
Sudo
授权
</a>
<a
href=
"/jperm/sudo_list/"
>
命令
授权
</a>
</li>
</li>
<li
class=
"apply_show online"
><a
href=
"/jperm/apply_show/online/"
>
权限审批
</a></li>
<li
class=
"apply_show online"
><a
href=
"/jperm/apply_show/online/"
>
权限审批
</a></li>
</ul>
</ul>
...
...
This diff is collapsed.
Click to expand it.
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