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
54461964
Commit
54461964
authored
Sep 26, 2017
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Bugfix] #695 Asset detail add or delete system user or group mixed
parent
0f9ae9ef
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
26 deletions
+52
-26
api.py
apps/assets/api.py
+23
-8
admin_user_detail.html
apps/assets/templates/assets/admin_user_detail.html
+3
-2
asset_detail.html
apps/assets/templates/assets/asset_detail.html
+23
-14
system_user_detail.html
apps/assets/templates/assets/system_user_detail.html
+3
-2
No files found.
apps/assets/api.py
View file @
54461964
...
...
@@ -14,18 +14,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from
rest_framework
import
viewsets
,
generics
,
mixins
from
rest_framework
import
generics
from
rest_framework.response
import
Response
from
rest_framework.views
import
APIView
from
rest_framework_bulk
import
BulkModelViewSet
,
BulkDestroyAPIView
from
django_filters.rest_framework
import
DjangoFilterBackend
from
rest_framework_bulk
import
BulkListSerializer
,
BulkSerializerMixin
,
ListBulkCreateUpdateDestroyAPIView
from
rest_framework_bulk
import
BulkModelViewSet
from
rest_framework_bulk
import
ListBulkCreateUpdateDestroyAPIView
from
django.shortcuts
import
get_object_or_404
from
common.mixins
import
IDInFilterMixin
from
common.utils
import
get_object_or_none
,
signer
from
common.utils
import
get_object_or_none
from
.hands
import
IsSuperUser
,
IsAppUser
,
IsValidUser
,
\
get_user_granted_assets
,
push_users
from
.models
import
AssetGroup
,
Asset
,
IDC
,
SystemUser
,
AdminUser
...
...
@@ -61,54 +57,66 @@ class AssetViewSet(IDInFilterMixin, BulkModelViewSet):
class
AssetGroupViewSet
(
IDInFilterMixin
,
BulkModelViewSet
):
"""Asset group api set, for add,delete,update,list,retrieve resource"""
queryset
=
AssetGroup
.
objects
.
all
()
serializer_class
=
serializers
.
AssetGroupSerializer
permission_classes
=
(
IsSuperUser
,)
class
AssetUpdateGroupApi
(
generics
.
RetrieveUpdateAPIView
):
"""Asset update it's group api"""
queryset
=
Asset
.
objects
.
all
()
serializer_class
=
serializers
.
AssetUpdateGroupSerializer
permission_classes
=
(
IsSuperUser
,)
class
AssetGroupUpdateApi
(
generics
.
RetrieveUpdateAPIView
):
"""Asset group, update it's asset member"""
queryset
=
AssetGroup
.
objects
.
all
()
serializer_class
=
serializers
.
AssetGroupUpdateSerializer
permission_classes
=
(
IsSuperUser
,)
class
AssetGroupUpdateSystemUserApi
(
generics
.
RetrieveUpdateAPIView
):
"""Asset group push system user"""
queryset
=
AssetGroup
.
objects
.
all
()
serializer_class
=
serializers
.
AssetGroupUpdateSystemUserSerializer
permission_classes
=
(
IsSuperUser
,)
class
IDCUpdateAssetsApi
(
generics
.
RetrieveUpdateAPIView
):
"""IDC update asset member"""
queryset
=
IDC
.
objects
.
all
()
serializer_class
=
serializers
.
IDCUpdateAssetsSerializer
permission_classes
=
(
IsSuperUser
,)
class
IDCViewSet
(
IDInFilterMixin
,
BulkModelViewSet
):
"""IDC api set, for add,delete,update,list,retrieve resource"""
queryset
=
IDC
.
objects
.
all
()
serializer_class
=
serializers
.
IDCSerializer
permission_classes
=
(
IsSuperUser
,)
class
AdminUserViewSet
(
IDInFilterMixin
,
BulkModelViewSet
):
"""Admin user api set, for add,delete,update,list,retrieve resource"""
queryset
=
AdminUser
.
objects
.
all
()
serializer_class
=
serializers
.
AdminUserSerializer
permission_classes
=
(
IsSuperUser
,)
class
SystemUserViewSet
(
IDInFilterMixin
,
BulkModelViewSet
):
"""System user api set, for add,delete,update,list,retrieve resource"""
queryset
=
SystemUser
.
objects
.
all
()
serializer_class
=
serializers
.
SystemUserSerializer
permission_classes
=
(
IsSuperUser
,)
class
SystemUserUpdateApi
(
generics
.
RetrieveUpdateAPIView
):
"""Asset update it's system user
when update then push system user to asset.
"""
queryset
=
Asset
.
objects
.
all
()
serializer_class
=
serializers
.
AssetUpdateSystemUserSerializer
permission_classes
=
(
IsSuperUser
,)
...
...
@@ -125,24 +133,28 @@ class SystemUserUpdateApi(generics.RetrieveUpdateAPIView):
class
SystemUserUpdateAssetsApi
(
generics
.
RetrieveUpdateAPIView
):
"""System user update it's assets"""
queryset
=
SystemUser
.
objects
.
all
()
serializer_class
=
serializers
.
SystemUserUpdateAssetsSerializer
permission_classes
=
(
IsSuperUser
,)
class
SystemUserUpdateAssetGroupApi
(
generics
.
RetrieveUpdateAPIView
):
"""System user update asset group"""
queryset
=
SystemUser
.
objects
.
all
()
serializer_class
=
serializers
.
SystemUserUpdateAssetGroupSerializer
permission_classes
=
(
IsSuperUser
,)
class
AssetListUpdateApi
(
IDInFilterMixin
,
ListBulkCreateUpdateDestroyAPIView
):
"""Asset bulk update api"""
queryset
=
Asset
.
objects
.
all
()
serializer_class
=
serializers
.
AssetSerializer
permission_classes
=
(
IsSuperUser
,)
class
SystemUserAuthInfoApi
(
generics
.
RetrieveAPIView
):
"""Get system user auth info"""
queryset
=
SystemUser
.
objects
.
all
()
permission_classes
=
(
IsAppUser
,)
...
...
@@ -160,6 +172,7 @@ class SystemUserAuthInfoApi(generics.RetrieveAPIView):
class
AssetRefreshHardwareView
(
generics
.
RetrieveAPIView
):
"""Refresh asset hardware info"""
queryset
=
Asset
.
objects
.
all
()
serializer_class
=
serializers
.
AssetSerializer
permission_classes
=
(
IsSuperUser
,)
...
...
@@ -175,6 +188,7 @@ class AssetRefreshHardwareView(generics.RetrieveAPIView):
class
AssetAdminUserTestView
(
AssetRefreshHardwareView
):
"""Test asset admin user connectivity"""
queryset
=
Asset
.
objects
.
all
()
permission_classes
=
(
IsSuperUser
,)
...
...
@@ -189,6 +203,7 @@ class AssetAdminUserTestView(AssetRefreshHardwareView):
class
AssetGroupPushSystemUserView
(
generics
.
UpdateAPIView
):
"""Asset group push system user api"""
queryset
=
AssetGroup
.
objects
.
all
()
permission_classes
=
(
IsSuperUser
,)
serializer_class
=
serializers
.
AssetSerializer
...
...
apps/assets/templates/assets/admin_user_detail.html
View file @
54461964
...
...
@@ -3,9 +3,10 @@
{% load i18n %}
{% block custom_head_css_js %}
<link
href=
"{% static
"
css
/
plugins
/
select2
/
select2
.
min
.
css
"
%}"
rel=
"stylesheet"
>
<script
src=
"{% static
"
js
/
plugins
/
select2
/
select2
.
full
.
min
.
js
"
%}"
></script>
<link
href=
"{% static
'css/plugins/select2/select2.min.css'
%}"
rel=
"stylesheet"
>
<script
src=
"{% static
'js/plugins/select2/select2.full.min.js'
%}"
></script>
{% endblock %}
{% block content %}
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
...
...
apps/assets/templates/assets/asset_detail.html
View file @
54461964
...
...
@@ -3,11 +3,12 @@
{% load i18n %}
{% block custom_head_css_js %}
<link
href=
"{% static "
css
/
plugins
/
select2
/
select2
.
min
.
css
"
%}"
rel=
"stylesheet"
>
<link
href=
"{% static "
css
/
plugins
/
sweetalert
/
sweetalert
.
css
"
%}"
rel=
"stylesheet"
>
<script
src=
"{% static "
js
/
plugins
/
select2
/
select2
.
full
.
min
.
js
"
%}"
></script>
<script
src=
"{% static "
js
/
plugins
/
sweetalert
/
sweetalert
.
min
.
js
"
%}"
></script>
<link
href=
'{% static "css/plugins/select2/select2.min.css" %}'
rel=
"stylesheet"
>
<link
href=
'{% static "css/plugins/sweetalert/sweetalert.css" %}'
rel=
"stylesheet"
>
<script
src=
'{% static "js/plugins/select2/select2.full.min.js" %}'
></script>
<script
src=
'{% static "js/plugins/sweetalert/sweetalert.min.js" %}'
></script>
{% endblock %}
{% block content %}
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
...
...
@@ -215,7 +216,7 @@
<form>
<tr>
<td
colspan=
"2"
class=
"no-borders"
>
<select
data-placeholder=
"{% trans 'Join asset groups' %}"
id=
"groups_selected"
class=
"select2"
style=
"width: 100%"
multiple=
""
tabindex=
"4"
>
<select
data-placeholder=
"{% trans 'Join asset groups' %}"
id=
"groups_selected"
class=
"select2
groups
"
style=
"width: 100%"
multiple=
""
tabindex=
"4"
>
{% for asset_group in asset_groups_remain %}
<option
value=
"{{ asset_group.id }}"
id=
"opt_{{ asset_group.id }}"
>
{{ asset_group.name }}
</option>
{% endfor %}
...
...
@@ -251,7 +252,7 @@
<form>
<tr
class=
"no-borders-tr"
>
<td
colspan=
"2"
>
<select
data-placeholder=
"{% trans 'Select system users' %}"
class=
"select2"
style=
"width: 100%"
multiple=
""
tabindex=
"4"
>
<select
data-placeholder=
"{% trans 'Select system users' %}"
class=
"select2
system-user
"
style=
"width: 100%"
multiple=
""
tabindex=
"4"
>
{% for system_user in system_users_all %}
<option
value=
"{{ system_user.id }}"
id=
"opt_{{ system_user.id }}"
>
{{ system_user.name }}
</option>
{% endfor %}
...
...
@@ -287,6 +288,7 @@
{% block custom_foot_js %}
<script>
jumpserver
.
groups_selected
=
{};
jumpserver
.
system_user_selected
=
{};
function
updateAssetGroups
(
groups
)
{
var
the_url
=
"{% url 'api-assets:asset-update-group' pk=asset.id %}"
;
var
body
=
{
...
...
@@ -316,7 +318,7 @@ function updateAssetGroups(groups) {
});
}
function
updateAssetSystem
(
system_users
)
{
function
updateAssetSystem
User
(
system_users
)
{
var
the_url
=
"{% url 'api-assets:asset-update-system-users' pk=asset.id %}"
;
var
body
=
{
system_users
:
Object
.
assign
([],
system_users
)
...
...
@@ -324,7 +326,7 @@ function updateAssetSystem(system_users) {
var
success
=
function
(
data
)
{
$
(
'.select2-selection__rendered'
).
empty
();
$
(
'#groups_selected'
).
val
(
''
);
$
.
map
(
jumpserver
.
groups
_selected
,
function
(
name
,
index
)
{
$
.
map
(
jumpserver
.
system_user
_selected
,
function
(
name
,
index
)
{
$
(
'#opt_'
+
index
).
remove
();
$
(
'#add-asset2systemuser tbody'
).
append
(
...
...
@@ -335,7 +337,7 @@ function updateAssetSystem(system_users) {
)
});
// clear jumpserver.groups_selected
jumpserver
.
groups
_selected
=
{};
jumpserver
.
system_user
_selected
=
{};
};
APIUpdateAttr
({
url
:
the_url
,
...
...
@@ -358,12 +360,19 @@ function refreshAssetHardware() {
$
(
document
).
ready
(
function
()
{
$
(
'.select2'
).
select2
().
on
(
'select2:select'
,
function
(
evt
)
{
$
(
'.select2
.groups
'
).
select2
().
on
(
'select2:select'
,
function
(
evt
)
{
var
data
=
evt
.
params
.
data
;
jumpserver
.
groups_selected
[
data
.
id
]
=
data
.
text
;
}).
on
(
'select2:unselect'
,
function
(
evt
)
{
var
data
=
evt
.
params
.
data
;
delete
jumpserver
.
groups_selected
[
data
.
id
]
});
$
(
'.select2.system-user'
).
select2
().
on
(
'select2:select'
,
function
(
evt
)
{
var
data
=
evt
.
params
.
data
;
jumpserver
.
system_user_selected
[
data
.
id
]
=
data
.
text
;
}).
on
(
'select2:unselect'
,
function
(
evt
)
{
var
data
=
evt
.
params
.
data
;
delete
jumpserver
.
system_user_selected
[
data
.
id
]
})
}).
on
(
'click'
,
'#is_active'
,
function
()
{
var
the_url
=
'{% url "api-assets:asset-detail" pk=asset.id %}'
;
...
...
@@ -410,17 +419,17 @@ $(document).ready(function () {
}).
get
();
updateAssetGroups
(
groups
)
}).
on
(
'click'
,
'.btn-system-user'
,
function
()
{
if
(
Object
.
keys
(
jumpserver
.
groups
_selected
).
length
===
0
)
{
if
(
Object
.
keys
(
jumpserver
.
system_user
_selected
).
length
===
0
)
{
return
false
;
}
var
system_users
=
$
(
'.bdg_group'
).
map
(
function
()
{
return
$
(
this
).
data
(
'sid'
);
}).
get
();
$
.
map
(
jumpserver
.
groups
_selected
,
function
(
value
,
index
)
{
$
.
map
(
jumpserver
.
system_user
_selected
,
function
(
value
,
index
)
{
system_users
.
push
(
parseInt
(
index
));
$
(
'#opt_'
+
index
).
remove
();
});
updateAssetSystem
(
system_users
)
updateAssetSystem
User
(
system_users
)
}).
on
(
'click'
,
'.btn_leave_system'
,
function
()
{
var
$this
=
$
(
this
);
...
...
@@ -435,7 +444,7 @@ $(document).ready(function () {
var
system_users
=
$
(
'.bdg_group'
).
map
(
function
()
{
return
$
(
this
).
data
(
'sid'
);
}).
get
();
updateAssetSystem
(
system_users
)
updateAssetSystemUser
(
system_users
)
}).
on
(
'click'
,
'.btn-delete-asset'
,
function
()
{
var
$this
=
$
(
this
);
...
...
apps/assets/templates/assets/system_user_detail.html
View file @
54461964
...
...
@@ -3,9 +3,10 @@
{% load i18n %}
{% block custom_head_css_js %}
<link
href=
"{% static "
css
/
plugins
/
select2
/
select2
.
min
.
css
"
%}"
rel=
"stylesheet"
>
<script
src=
"{% static "
js
/
plugins
/
select2
/
select2
.
full
.
min
.
js
"
%}"
></script>
<link
href=
'{% static "css/plugins/select2/select2.min.css" %}'
rel=
"stylesheet"
>
<script
src=
'{% static "js/plugins/select2/select2.full.min.js" %}'
></script>
{% endblock %}
{% block content %}
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
...
...
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