From e23296264991258847f63b12b073f4333a5e1ce2 Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 16 Sep 2016 20:53:10 +0800 Subject: [PATCH] Update some template --- apps/assets/models.py | 15 +++++ .../templates/assets/admin_user_detail.html | 42 ++++++++---- .../templates/assets/system_user_asset.html | 60 ++++++++++++++--- .../templates/assets/system_user_detail.html | 6 +- .../templates/assets/system_user_list.html | 4 +- apps/assets/urls.py | 4 +- apps/assets/views.py | 55 +++++++++------- ..._list.html => asset_permission_asset.html} | 0 ...r_list.html => asset_permission_user.html} | 0 .../templates/perms/perm_user_asset_list.html | 66 ------------------- apps/perms/urls.py | 4 +- apps/perms/views.py | 16 ++--- apps/static/css/jumpserver.css | 2 + 13 files changed, 144 insertions(+), 130 deletions(-) rename apps/perms/templates/perms/{asset_permission_asset_list.html => asset_permission_asset.html} (100%) rename apps/perms/templates/perms/{asset_permission_user_list.html => asset_permission_user.html} (100%) delete mode 100644 apps/perms/templates/perms/perm_user_asset_list.html diff --git a/apps/assets/models.py b/apps/assets/models.py index 8c48eb373..5e2beabb3 100644 --- a/apps/assets/models.py +++ b/apps/assets/models.py @@ -194,6 +194,21 @@ class SystemUser(models.Model): def public_key(self, public_key_raw): self._public_key = encrypt(public_key_raw) + def get_assets_inherit_from_asset_groups(self): + assets = set() + asset_groups = self.asset_groups.all() + for asset_group in asset_groups: + for asset in asset_group.assets.all(): + setattr(asset, 'is_inherit_from_asset_groups', True) + setattr(asset, 'inherit_from_asset_groups', + getattr(asset, b'inherit_from_asset_groups', set()).add(asset_group)) + assets.add(asset) + return assets + + def get_assets(self): + assets = set(self.assets.all()) | self.get_assets_inherit_from_asset_groups() + return list(assets) + class Meta: db_table = 'system_user' diff --git a/apps/assets/templates/assets/admin_user_detail.html b/apps/assets/templates/assets/admin_user_detail.html index 12a108f6c..b02cde2c0 100644 --- a/apps/assets/templates/assets/admin_user_detail.html +++ b/apps/assets/templates/assets/admin_user_detail.html @@ -15,9 +15,9 @@
diff --git a/apps/assets/templates/assets/system_user_asset.html b/apps/assets/templates/assets/system_user_asset.html index 9f30c724e..c3f22749b 100644 --- a/apps/assets/templates/assets/system_user_asset.html +++ b/apps/assets/templates/assets/system_user_asset.html @@ -19,10 +19,7 @@ {% trans 'Detail' %}
  • - {% trans 'Associate assets' %} -
  • -
  • - {% trans 'Associate asset groups' %} + {% trans 'Associate assets and asset groups' %}
  • @@ -30,7 +27,7 @@
    diff --git a/apps/assets/templates/assets/system_user_list.html b/apps/assets/templates/assets/system_user_list.html index ac8672347..2a9b04178 100644 --- a/apps/assets/templates/assets/system_user_list.html +++ b/apps/assets/templates/assets/system_user_list.html @@ -11,7 +11,7 @@ {% trans 'Username' %} {% trans 'Asset num' %} {% trans 'Asset group num' %} - {% trans 'Unavailable' %} + {% trans 'Unreachable' %} {% trans 'Comment' %} {% endblock %} @@ -26,7 +26,7 @@ {{ system_user.username }} - {{ system_user.assets.count }} + {{ system_user.get_assets|length }} {{ system_user.asset_groups.count }} {{ system_user.assets.count }} {{ system_user.comment|truncatewords:4 }} diff --git a/apps/assets/urls.py b/apps/assets/urls.py index 175c01afc..f5260f33a 100644 --- a/apps/assets/urls.py +++ b/apps/assets/urls.py @@ -48,7 +48,7 @@ urlpatterns = [ url(r'^system-user/(?P[0-9]+)/update', views.SystemUserUpdateView.as_view(), name='system-user-update'), url(r'^system-user/(?P[0-9]+)/delete$', views.SystemUserDeleteView.as_view(), name='system-user-delete'), url(r'^system-user/(?P[0-9]+)/asset$', views.SystemUserAssetView.as_view(), name='system-user-asset'), - url(r'^system-user/(?P[0-9]+)/asset-group$', views.SystemUserAssetGroupView.as_view(), - name='system-user-asset-group'), + # url(r'^system-user/(?P[0-9]+)/asset-group$', views.SystemUserAssetGroupView.as_view(), + # name='system-user-asset-group'), # url(r'^api/v1.0/', include(router.urls)), ] diff --git a/apps/assets/views.py b/apps/assets/views.py index c1b6c06ad..92d6b53f1 100644 --- a/apps/assets/views.py +++ b/apps/assets/views.py @@ -365,7 +365,6 @@ class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView): model = SystemUser form_class = SystemUserForm template_name = 'assets/system_user_create_update.html' - success_message = _('Update system user %s successfully.') def get_context_data(self, **kwargs): context = { @@ -376,7 +375,7 @@ class SystemUserUpdateView(AdminUserRequiredMixin, UpdateView): return super(SystemUserUpdateView, self).get_context_data(**kwargs) def get_success_url(self): - success_url = reverse_lazy('assets:system-user-detail', pk=self.object.pk) + success_url = reverse_lazy('assets:system-user-detail', kwargs={'pk': self.object.pk}) return success_url @@ -409,39 +408,47 @@ class SystemUserAssetView(AdminUserRequiredMixin, SingleObjectMixin, ListView): self.object = self.get_object(queryset=SystemUser.objects.all()) return super(SystemUserAssetView, self).get(request, *args, **kwargs) + def get_asset_groups(self): + return self.object.asset_groups.all() + # Todo: queryset default order by connectivity, need ops support def get_queryset(self): - return self.object.assets.all() + return list(self.object.get_assets()) def get_context_data(self, **kwargs): + asset_groups = self.get_asset_groups() + assets = self.get_queryset() context = { 'app': 'assets', 'action': 'System user asset', - 'assets': self.get_queryset(), + '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(SystemUserAssetView, self).get_context_data(**kwargs) -class SystemUserAssetGroupView(AdminUserRequiredMixin, SingleObjectMixin, ListView): - paginate_by = settings.CONFIG.DISPLAY_PER_PAGE - template_name = 'assets/system_user_asset_group.html' - context_object_name = 'system_user' - - def get(self, request, *args, **kwargs): - self.object = self.get_object(queryset=SystemUser.objects.all()) - return super(SystemUserAssetGroupView, self).get(request, *args, **kwargs) - +# class SystemUserAssetGroupView(AdminUserRequiredMixin, SingleObjectMixin, ListView): +# paginate_by = settings.CONFIG.DISPLAY_PER_PAGE +# template_name = 'assets/system_user_asset_group.html' +# context_object_name = 'system_user' +# +# def get(self, request, *args, **kwargs): +# self.object = self.get_object(queryset=SystemUser.objects.all()) +# return super(SystemUserAssetGroupView, self).get(request, *args, **kwargs) +# # Todo: queryset default order by connectivity, need ops support - def get_queryset(self): - return self.object.asset_groups.all() - - def get_context_data(self, **kwargs): - context = { - 'app': 'assets', - 'action': 'System user asset group', - 'asset_groups': self.get_queryset(), - } - kwargs.update(context) - return super(SystemUserAssetGroupView, self).get_context_data(**kwargs) + # def get_queryset(self): + # return self.object.asset_groups.all() + # + # def get_context_data(self, **kwargs): + # context = { + # 'app': 'assets', + # 'action': 'System user asset group', + # 'asset_groups': self.get_queryset(), + # } + # kwargs.update(context) + # return super(SystemUserAssetGroupView, self).get_context_data(**kwargs) diff --git a/apps/perms/templates/perms/asset_permission_asset_list.html b/apps/perms/templates/perms/asset_permission_asset.html similarity index 100% rename from apps/perms/templates/perms/asset_permission_asset_list.html rename to apps/perms/templates/perms/asset_permission_asset.html diff --git a/apps/perms/templates/perms/asset_permission_user_list.html b/apps/perms/templates/perms/asset_permission_user.html similarity index 100% rename from apps/perms/templates/perms/asset_permission_user_list.html rename to apps/perms/templates/perms/asset_permission_user.html diff --git a/apps/perms/templates/perms/perm_user_asset_list.html b/apps/perms/templates/perms/perm_user_asset_list.html deleted file mode 100644 index 792716f0b..000000000 --- a/apps/perms/templates/perms/perm_user_asset_list.html +++ /dev/null @@ -1,66 +0,0 @@ -{% extends '_list_base.html' %} -{% load i18n %} -{% load common_tags %} -{% block content_left_head %} - {% trans "Create perm " %} -{% endblock %} - -{% block table_head %} - - - - {% trans 'Name' %} - {% trans 'Username' %} - {% trans 'Role' %} - {% trans 'Asset num' %} - {% trans 'Asset group' %} - {% trans 'System user' %} - {% trans 'Active' %} - -{% endblock %} - -{% block table_body %} - {% for perm in page_obj %} - - - - - - - {{ user.name }} - - - {{ user.username }} - {{ user.get_role_display }} - 35/40 - 20 - 3 - - {% trans 'Create perm' %} - {% trans 'Flush' %} - - - {% endfor %} -{% endblock %} - -{% block content_bottom_left %} - -{% endblock %} - - diff --git a/apps/perms/urls.py b/apps/perms/urls.py index 2749ff36c..9b6b446f5 100644 --- a/apps/perms/urls.py +++ b/apps/perms/urls.py @@ -14,9 +14,9 @@ urlpatterns = [ name='asset-permission-detail'), url(r'^asset-permission/(?P[0-9]+)/delete$', views.AssetPermissionDeleteView.as_view(), name='asset-permission-delete'), - url(r'^asset-permission/(?P[0-9]+)/user$', views.AssetPermissionUserListView.as_view(), + url(r'^asset-permission/(?P[0-9]+)/user$', views.AssetPermissionUserView.as_view(), name='asset-permission-user-list'), - url(r'^asset-permission/(?P[0-9]+)/asset$', views.AssetPermissionAssetListView.as_view(), + url(r'^asset-permission/(?P[0-9]+)/asset$', views.AssetPermissionAssetView.as_view(), name='asset-permission-asset-list'), ] diff --git a/apps/perms/views.py b/apps/perms/views.py index e30a94774..f3704a3d1 100644 --- a/apps/perms/views.py +++ b/apps/perms/views.py @@ -120,15 +120,15 @@ class AssetPermissionDeleteView(AdminUserRequiredMixin, DeleteView): success_url = reverse_lazy('perms:asset-permission-list') -class AssetPermissionUserListView(AdminUserRequiredMixin, SingleObjectMixin, ListView): - template_name = 'perms/asset_permission_user_list.html' +class AssetPermissionUserView(AdminUserRequiredMixin, SingleObjectMixin, ListView): + template_name = 'perms/asset_permission_user.html' context_object_name = 'asset_permission' paginate_by = settings.CONFIG.DISPLAY_PER_PAGE def get(self, request, *args, **kwargs): self.object = self.get_object(queryset=AssetPermission.objects.all()) self.keyword = self.request.GET.get('keyword', '') - return super(AssetPermissionUserListView, self).get(request, *args, **kwargs) + return super(AssetPermissionUserView, self).get(request, *args, **kwargs) def get_queryset(self): queryset = self.object.get_granted_users() @@ -152,18 +152,18 @@ class AssetPermissionUserListView(AdminUserRequiredMixin, SingleObjectMixin, Lis 'keyword': self.keyword, } kwargs.update(context) - return super(AssetPermissionUserListView, self).get_context_data(**kwargs) + return super(AssetPermissionUserView, self).get_context_data(**kwargs) -class AssetPermissionAssetListView(AdminUserRequiredMixin, SingleObjectMixin, ListView): - template_name = 'perms/asset_permission_asset_list.html' +class AssetPermissionAssetView(AdminUserRequiredMixin, SingleObjectMixin, ListView): + template_name = 'perms/asset_permission_asset.html' context_object_name = 'asset_permission' paginate_by = settings.CONFIG.DISPLAY_PER_PAGE def get(self, request, *args, **kwargs): self.object = self.get_object(queryset=AssetPermission.objects.all()) self.keyword = self.request.GET.get('keyword', '') - return super(AssetPermissionAssetListView, self).get(request, *args, **kwargs) + return super(AssetPermissionAssetView, self).get(request, *args, **kwargs) def get_queryset(self): queryset = self.object.get_granted_assets() @@ -187,4 +187,4 @@ class AssetPermissionAssetListView(AdminUserRequiredMixin, SingleObjectMixin, Li 'keyword': self.keyword, } kwargs.update(context) - return super(AssetPermissionAssetListView, self).get_context_data(**kwargs) + return super(AssetPermissionAssetView, self).get_context_data(**kwargs) diff --git a/apps/static/css/jumpserver.css b/apps/static/css/jumpserver.css index 7948a33df..da3354188 100644 --- a/apps/static/css/jumpserver.css +++ b/apps/static/css/jumpserver.css @@ -77,3 +77,5 @@ th a { .no-borders-tr td { border-top: none !important; } + +