diff --git a/apps/jumpserver/urls.py b/apps/jumpserver/urls.py index 041372aca..5023462f6 100644 --- a/apps/jumpserver/urls.py +++ b/apps/jumpserver/urls.py @@ -42,6 +42,7 @@ urlpatterns = [ urlpatterns += [ url(r'^api/v1/ops', include(router.urls)), + url(r'^ops/', include('ops.urls')), ] if settings.DEBUG: diff --git a/apps/ops/templates/cron/list.html b/apps/ops/templates/cron/list.html index b08a44b53..5168bed8d 100644 --- a/apps/ops/templates/cron/list.html +++ b/apps/ops/templates/cron/list.html @@ -1,34 +1,31 @@ {% extends '_base_list.html' %} {% load i18n static %} -{% block custom_head_css_js %} -{{ block.super }} - +{% block table_search %} +
+
+ + PDF + + Excel + +
+
{% endblock %} -{% block table_search %}{% endblock %} {% block table_container %} -
{% trans "Import user" %}
{% trans "Create user" %}
+
{% trans "Import user" %}
- - + + - - + @@ -65,34 +62,43 @@ $(document).ready(function(){ $(td).html(detail_btn.replace('99991937', rowData.id)); }}, {targets: 4, createdCell: function (td, cellData) { - var innerHtml = cellData.length > 8 ? cellData.substring(0, 8) + '...': cellData; - $(td).html('' + innerHtml + ''); + var innerHtml = cellData.length > 20 ? cellData.substring(0, 20) + '...': cellData; + $(td).html('' + innerHtml + ''); }}, - {targets: 6, createdCell: function (td, cellData) { + {targets: 5, createdCell: function (td, cellData) { if (!cellData) { $(td).html('') } else { $(td).html('') } }}, - {targets: 7, createdCell: function (td, cellData, rowData) { + {targets: 6, createdCell: function (td, cellData, rowData) { var update_btn = '{% trans "Update" %}'.replace('99991937', cellData); var del_btn = '{% trans "Delete" %}'.replace('99991937', cellData); - if (rowData.id === 1) { + if (rowData.id === 1 || rowData.username == "admin") { $(td).html(update_btn) } else { $(td).html(update_btn + del_btn) } }}], - ajax_url: '{% url "users:user-bulk-update-api" %}', - columns: [{data: function(){return ""}}, {data: "username" }, {data: "name" }, {data: "get_role_display" }, {data: "group_display" }, - {data: function(){return 999}}, {data: "active_display" }, {data: "id" }], + ajax_url: '{% url "api-users:user-list" %}', + columns: [{data: "id"}, {data: "username" }, {data: "name" }, {data: "get_role_display" }, + {data: "groups_display" }, {data: "is_valid" }, {data: "id" }], op_html: $('#actions').html() }; - jumpserver.initDataTable(options); + var table = jumpserver.initDataTable(options); + + $('.buttons-pdf').click(function () { + var users = []; + var rows = table.rows('.selected').data(); + $.each(rows, function (index, obj) { + users.push(obj.id) + }) + }); + }).on('click', '#btn_bulk_update', function(){ var action = $('#slct_bulk_update').val(); - var $data_table = $('#user_list_table').DataTable() + var $data_table = $('#user_list_table').DataTable(); var id_list = []; var plain_id_list = []; $data_table.rows({selected: true}).every(function(){ @@ -101,8 +107,8 @@ $(document).ready(function(){ }); if (id_list === []) { return false; - }; - var the_url = "{% url 'users:user-bulk-update-api' %}"; + } + var the_url = "{% url 'api-users:user-list' %}"; function doDeactive() { var body = $.each(id_list, function(index, user_object) { user_object['is_active'] = false; @@ -155,7 +161,7 @@ $(document).ready(function(){ var $this = $(this); function doDelete() { var uid = $this.data('uid'); - var the_url = '{% url "users:user-patch-api" pk=99991937 %}'.replace('99991937', uid); + var the_url = '{% url "api-users:user-detail" pk=99991937 %}'.replace('99991937', uid); var body = {}; var success = function() { var msg = "{% trans 'User Deleted.' %}"; @@ -165,7 +171,7 @@ $(document).ready(function(){ var fail = function() { var msg = "{% trans 'User Deleting failed.' %}"; swal("{% trans 'User Delete' %}", msg, "error"); - } + }; APIUpdateAttr({ url: the_url, body: JSON.stringify(body), @@ -208,15 +214,15 @@ $(document).ready(function(){ post_list.push(content); }); if (post_list === []) { - return false; - }; - var the_url = "{% url 'users:user-bulk-update-api' %}"; + return false + } + var the_url = "{% url 'api-users:user-list' %}"; var success = function() { var msg = "{% trans 'The selected users has been updated successfully.' %}"; swal("{% trans 'User Updated' %}", msg, "success"); $('#user_list_table').DataTable().ajax.reload(); jumpserver.checked = false; - } + }; APIUpdateAttr({url: the_url, method: 'PATCH', body: JSON.stringify(post_list), success: success}); $('#user_bulk_update_modal').modal('hide'); }).on('click', '#btn_user_import', function() { @@ -229,13 +235,11 @@ $(document).ready(function(){ } else { $('#user_import_modal').modal('hide'); var $data_table = $('#user_list_table').DataTable(); - toastr.success("{% trans 'Import User Success.' %}") + toastr.success("{% trans 'Import User Success.' %}"); $data_table.ajax.reload(); } } $form.ajaxSubmit({success: success}); -}).on('change', '#id_excel', function() { - $(this).siblings('.help-block').remove(); }) {% endblock %} diff --git a/apps/ops/templates/sudo/list.html b/apps/ops/templates/sudo/list.html index b08a44b53..5168bed8d 100644 --- a/apps/ops/templates/sudo/list.html +++ b/apps/ops/templates/sudo/list.html @@ -1,34 +1,31 @@ {% extends '_base_list.html' %} {% load i18n static %} -{% block custom_head_css_js %} -{{ block.super }} - +{% block table_search %} +
+
+ + PDF + + Excel + +
+
{% endblock %} -{% block table_search %}{% endblock %} {% block table_container %} -
{% trans "Import user" %}
{% trans "Create user" %}
+
{% trans "Import user" %}
-
+{#
#} +
{% trans 'Name' %}{% trans 'Username' %}{% trans 'Name' %}{% trans 'Username' %} {% trans 'Role' %} {% trans 'User group' %}{% trans 'Asset num' %}{% trans 'Active' %}{% trans 'Active' %} {% trans 'Action' %}
- - + + - - + @@ -65,34 +62,43 @@ $(document).ready(function(){ $(td).html(detail_btn.replace('99991937', rowData.id)); }}, {targets: 4, createdCell: function (td, cellData) { - var innerHtml = cellData.length > 8 ? cellData.substring(0, 8) + '...': cellData; - $(td).html('' + innerHtml + ''); + var innerHtml = cellData.length > 20 ? cellData.substring(0, 20) + '...': cellData; + $(td).html('' + innerHtml + ''); }}, - {targets: 6, createdCell: function (td, cellData) { + {targets: 5, createdCell: function (td, cellData) { if (!cellData) { $(td).html('') } else { $(td).html('') } }}, - {targets: 7, createdCell: function (td, cellData, rowData) { + {targets: 6, createdCell: function (td, cellData, rowData) { var update_btn = '{% trans "Update" %}'.replace('99991937', cellData); var del_btn = '{% trans "Delete" %}'.replace('99991937', cellData); - if (rowData.id === 1) { + if (rowData.id === 1 || rowData.username == "admin") { $(td).html(update_btn) } else { $(td).html(update_btn + del_btn) } }}], - ajax_url: '{% url "users:user-bulk-update-api" %}', - columns: [{data: function(){return ""}}, {data: "username" }, {data: "name" }, {data: "get_role_display" }, {data: "group_display" }, - {data: function(){return 999}}, {data: "active_display" }, {data: "id" }], + ajax_url: '{% url "api-users:user-list" %}', + columns: [{data: "id"}, {data: "username" }, {data: "name" }, {data: "get_role_display" }, + {data: "groups_display" }, {data: "is_valid" }, {data: "id" }], op_html: $('#actions').html() }; - jumpserver.initDataTable(options); + var table = jumpserver.initDataTable(options); + + $('.buttons-pdf').click(function () { + var users = []; + var rows = table.rows('.selected').data(); + $.each(rows, function (index, obj) { + users.push(obj.id) + }) + }); + }).on('click', '#btn_bulk_update', function(){ var action = $('#slct_bulk_update').val(); - var $data_table = $('#user_list_table').DataTable() + var $data_table = $('#user_list_table').DataTable(); var id_list = []; var plain_id_list = []; $data_table.rows({selected: true}).every(function(){ @@ -101,8 +107,8 @@ $(document).ready(function(){ }); if (id_list === []) { return false; - }; - var the_url = "{% url 'users:user-bulk-update-api' %}"; + } + var the_url = "{% url 'api-users:user-list' %}"; function doDeactive() { var body = $.each(id_list, function(index, user_object) { user_object['is_active'] = false; @@ -155,7 +161,7 @@ $(document).ready(function(){ var $this = $(this); function doDelete() { var uid = $this.data('uid'); - var the_url = '{% url "users:user-patch-api" pk=99991937 %}'.replace('99991937', uid); + var the_url = '{% url "api-users:user-detail" pk=99991937 %}'.replace('99991937', uid); var body = {}; var success = function() { var msg = "{% trans 'User Deleted.' %}"; @@ -165,7 +171,7 @@ $(document).ready(function(){ var fail = function() { var msg = "{% trans 'User Deleting failed.' %}"; swal("{% trans 'User Delete' %}", msg, "error"); - } + }; APIUpdateAttr({ url: the_url, body: JSON.stringify(body), @@ -208,15 +214,15 @@ $(document).ready(function(){ post_list.push(content); }); if (post_list === []) { - return false; - }; - var the_url = "{% url 'users:user-bulk-update-api' %}"; + return false + } + var the_url = "{% url 'api-users:user-list' %}"; var success = function() { var msg = "{% trans 'The selected users has been updated successfully.' %}"; swal("{% trans 'User Updated' %}", msg, "success"); $('#user_list_table').DataTable().ajax.reload(); jumpserver.checked = false; - } + }; APIUpdateAttr({url: the_url, method: 'PATCH', body: JSON.stringify(post_list), success: success}); $('#user_bulk_update_modal').modal('hide'); }).on('click', '#btn_user_import', function() { @@ -229,13 +235,11 @@ $(document).ready(function(){ } else { $('#user_import_modal').modal('hide'); var $data_table = $('#user_list_table').DataTable(); - toastr.success("{% trans 'Import User Success.' %}") + toastr.success("{% trans 'Import User Success.' %}"); $data_table.ajax.reload(); } } $form.ajaxSubmit({success: success}); -}).on('change', '#id_excel', function() { - $(this).siblings('.help-block').remove(); }) {% endblock %} diff --git a/apps/ops/urls/__init__.py b/apps/ops/urls/__init__.py deleted file mode 100644 index 8b1378917..000000000 --- a/apps/ops/urls/__init__.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/apps/ops/urls/api_urls.py b/apps/ops/urls/api_urls.py deleted file mode 100644 index d0c6b5204..000000000 --- a/apps/ops/urls/api_urls.py +++ /dev/null @@ -1,7 +0,0 @@ -# coding:utf-8 - -from django.conf.urls import url -from rest_framework import routers - - - diff --git a/apps/ops/urls/views_urls.py b/apps/ops/urls/views_urls.py deleted file mode 100644 index a29072e4f..000000000 --- a/apps/ops/urls/views_urls.py +++ /dev/null @@ -1,8 +0,0 @@ -# coding:utf-8 - -from django.conf.urls import url -from .. import views - -app_name = 'ops' - - diff --git a/apps/templates/_nav.html b/apps/templates/_nav.html index 4be5f8706..917a988ce 100644 --- a/apps/templates/_nav.html +++ b/apps/templates/_nav.html @@ -38,7 +38,8 @@
  • {% trans 'Terminal' %} - +   +
  • @@ -50,11 +51,6 @@
  • -
  • - - {% trans 'Audits' %} - -
  • {% trans 'Audits' %}
  • -
    +{#
    #} +
    {% trans 'Name' %}{% trans 'Username' %}{% trans 'Name' %}{% trans 'Username' %} {% trans 'Role' %} {% trans 'User group' %}{% trans 'Asset num' %}{% trans 'Active' %}{% trans 'Active' %} {% trans 'Action' %}