diff --git a/apps/assets/templates/assets/admin_user_list.html b/apps/assets/templates/assets/admin_user_list.html
index 73539ff5e..132b2f93b 100644
--- a/apps/assets/templates/assets/admin_user_list.html
+++ b/apps/assets/templates/assets/admin_user_list.html
@@ -15,7 +15,6 @@
{% trans 'Name' %} |
{% trans 'Username' %} |
{% trans 'Asset num' %} |
- {% trans 'Lost connection' %} |
{% trans 'Comment' %} |
{% trans 'Action' %} |
@@ -23,18 +22,6 @@
-
{% endblock %}
{% block content_bottom_left %}{% endblock %}
{% block custom_foot_js %}
@@ -47,11 +34,11 @@ $(document).ready(function(){
var detail_btn = '' + cellData + '';
$(td).html(detail_btn.replace('99991937', rowData.id));
}},
- {targets: 5, createdCell: function (td, cellData) {
+ {targets: 4, createdCell: function (td, cellData) {
var innerHtml = cellData.length > 8 ? cellData.substring(0, 24) + '...': cellData;
$(td).html('' + innerHtml + '');
}},
- {targets: 6, createdCell: function (td, cellData, rowData) {
+ {targets: 5, createdCell: function (td, cellData, rowData) {
{# var script_btn = '{% trans "Script" %}'.replace('99991937', cellData);#}
var update_btn = '{% trans "Update" %}'.replace('99991937', cellData);
var del_btn = '{% trans "Delete" %}'.replace('99991937', cellData);
@@ -59,9 +46,8 @@ $(document).ready(function(){
$(td).html(update_btn + del_btn)
}}],
ajax_url: '{% url "api-assets:admin-user-list" %}',
- columns: [{data: function(){return ""}}, {data: "name" }, {data: "username" }, {data: "assets_amount" }, {data: function () {return 'lost'} },
+ columns: [{data: function(){return ""}}, {data: "name" }, {data: "username" }, {data: "assets_amount" },
{data: "comment" }, {data: "id" }],
- op_html: $('#actions').html()
};
jumpserver.initDataTable(options);
})
@@ -76,59 +62,7 @@ $(document).ready(function(){
setTimeout( function () {
$data_table.ajax.reload();
}, 3000);
-})
-.on('click', '#btn_bulk_update', function () {
- var action = $('#slct_bulk_update').val();
- var $data_table = $('#admin_user_list_table').DataTable();
- var id_list = [];
- var plain_id_list = [];
- $data_table.rows({selected: true}).every(function(){
- id_list.push({id: this.data().id});
- plain_id_list.push(this.data().id);
- });
- if (plain_id_list.length == 0) {
- return false;
- }
- var the_url = "{% url 'api-assets:admin-user-list' %}";
- function doDelete() {
- swal({
- title: "{% trans 'Are you sure?' %}",
- text: "{% trans 'This will delete the selected Admin Users !!!' %}",
- type: "warning",
- showCancelButton: true,
- confirmButtonColor: "#DD6B55",
- confirmButtonText: "{% trans 'Confirm' %}",
- closeOnConfirm: false
- }, function() {
- var success = function() {
- var msg = "{% trans 'Admin Users Deleted.' %}";
- swal("{% trans 'Admin Users Delete' %}", msg, "success");
- $('#admin_user_list_table').DataTable().ajax.reload();
- };
- var fail = function() {
- var msg = "{% trans 'Admin Users Deleting failed.' %}";
- swal("{% trans 'Admin Users Delete' %}", msg, "error");
- };
- var url_delete = the_url + '?id__in=' + JSON.stringify(plain_id_list);
- APIUpdateAttr({url: url_delete, method: 'DELETE', success: success, error: fail});
- $data_table.ajax.reload();
- jumpserver.checked = false;
- });
- }
- function doUpdate() {
-
- }
- switch (action) {
- case 'delete':
- doDelete();
- break;
- case 'update':
- doUpdate();
- break;
- default:
- break;
- }
});
{% endblock %}
diff --git a/apps/assets/templates/assets/asset_list.html b/apps/assets/templates/assets/asset_list.html
index 4c6927088..e47f48428 100644
--- a/apps/assets/templates/assets/asset_list.html
+++ b/apps/assets/templates/assets/asset_list.html
@@ -188,7 +188,7 @@ $(document).ready(function(){
var uid = $this.data('uid');
var the_url = '{% url "api-assets:asset-detail" pk=99991937 %}'.replace('99991937', uid);
console.log(the_url);
- objDelete($this, name, the_url);
+ objectDelete($this, name, the_url);
setTimeout( function () {
$data_table.ajax.reload();
}, 3000);
diff --git a/apps/assets/views.py b/apps/assets/views.py
index 1e112405d..f5bbcd216 100644
--- a/apps/assets/views.py
+++ b/apps/assets/views.py
@@ -22,12 +22,14 @@ from django.views.decorators.csrf import csrf_protect, csrf_exempt
from django.utils.decorators import method_decorator
from django.core.cache import cache
from django.utils import timezone
+from django.contrib.auth.mixins import LoginRequiredMixin
from common.mixins import JSONResponseMixin
from common.utils import get_object_or_none
from . import forms
from .models import Asset, AssetGroup, AdminUser, IDC, SystemUser
from .hands import AdminUserRequiredMixin
+from .tasks import update_assets_hardware_info
class AssetListView(AdminUserRequiredMixin, TemplateView):
@@ -44,7 +46,7 @@ class AssetListView(AdminUserRequiredMixin, TemplateView):
return super(AssetListView, self).get_context_data(**kwargs)
-class UserAssetListView(TemplateView):
+class UserAssetListView(LoginRequiredMixin, TemplateView):
template_name = 'assets/user_asset_list.html'
def get_context_data(self, **kwargs):
@@ -64,7 +66,7 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView):
success_url = reverse_lazy('assets:asset-list')
def form_valid(self, form):
- asset = form.save()
+ self.asset = asset = form.save()
asset.created_by = self.request.user.username or 'Admin'
asset.save()
return super(AssetCreateView, self).form_valid(form)
@@ -77,6 +79,10 @@ class AssetCreateView(AdminUserRequiredMixin, CreateView):
kwargs.update(context)
return super(AssetCreateView, self).get_context_data(**kwargs)
+ def get_success_url(self):
+ update_assets_hardware_info.delay([self.asset])
+ return super(AssetCreateView, self).get_success_url()
+
class AssetModalCreateView(AdminUserRequiredMixin, ListView):
model = Asset
@@ -439,16 +445,12 @@ class AdminUserDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
context_object_name = 'admin_user'
def get(self, request, *args, **kwargs):
- self.object = self.get_object(queryset=AdminUser.objects.all())
+ self.object = self.get_object(queryset=AdminUser.objects.all())
return super(AdminUserDetailView, self).get(request, *args, **kwargs)
- # Todo: queryset default order by connectivity, need ops support
def get_queryset(self):
return self.object.assets.all()
- # def get_asset_groups(self):
- # return self.object.asset_groups.all()
-
def get_context_data(self, **kwargs):
asset_groups = AssetGroup.objects.all()
assets = self.get_queryset()
@@ -457,8 +459,6 @@ class AdminUserDetailView(AdminUserRequiredMixin, SingleObjectMixin, ListView):
'action': 'Admin user detail',
'assets_remain': [asset for asset in Asset.objects.all() if asset not in assets],
'asset_groups': asset_groups,
- # 'asset_groups_remain': [asset_group for asset_group in AssetGroup.objects.all()
- # if asset_group not in asset_groups]
}
kwargs.update(context)
return super(AdminUserDetailView, self).get_context_data(**kwargs)
diff --git a/apps/jumpserver/views.py b/apps/jumpserver/views.py
index b6a510fff..044d3fa8f 100644
--- a/apps/jumpserver/views.py
+++ b/apps/jumpserver/views.py
@@ -1,6 +1,9 @@
from django.views.generic import TemplateView
from django.utils import timezone
from django.db.models import Count
+from django.contrib.auth.mixins import LoginRequiredMixin
+from django.shortcuts import redirect
+
from users.utils import AdminUserRequiredMixin
from users.models import User
@@ -8,9 +11,14 @@ from assets.models import Asset
from audits.models import ProxyLog
-class IndexView(AdminUserRequiredMixin, TemplateView):
+class IndexView(LoginRequiredMixin, TemplateView):
template_name = 'index.html'
+ def get(self, request, *args, **kwargs):
+ if not request.user.is_superuser:
+ return redirect('assets:user-asset-list')
+ return super(IndexView, self).get(request, *args, **kwargs)
+
def get_context_data(self, **kwargs):
seven_days_ago = timezone.now() - timezone.timedelta(days=7)
month_ago = timezone.now() - timezone.timedelta(days=30)
diff --git a/apps/templates/_nav_user.html b/apps/templates/_nav_user.html
index 77206f1c2..296d8bc89 100644
--- a/apps/templates/_nav_user.html
+++ b/apps/templates/_nav_user.html
@@ -1,9 +1,4 @@
{% load i18n %}
-
-
- {% trans 'Dashboard' %}
-
-
{% trans 'My assets' %}
diff --git a/config_example.py b/config_example.py
index 7903d609d..cbe79aa8b 100644
--- a/config_example.py
+++ b/config_example.py
@@ -100,8 +100,8 @@ class DevelopmentConfig(Config):
DB_NAME = os.path.join(BASE_DIR, 'db.sqlite3')
EMAIL_HOST = 'smtp.exmail.qq.com'
EMAIL_PORT = 465
- EMAIL_HOST_USER = 'ask@jumpserver.org'
- EMAIL_HOST_PASSWORD = 'xfDf4x1n'
+ EMAIL_HOST_USER = 'a@jumpserver.org'
+ EMAIL_HOST_PASSWORD = 'somepasswrd'
EMAIL_USE_SSL = True
EMAIL_USE_TLS = False
EMAIL_SUBJECT_PREFIX = '[Jumpserver] '