From 2d4498578a2846fdb832588b499860a11a5e2560 Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 8 May 2020 13:13:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E7=BC=93=E5=AD=98=E9=85=8D=E7=BD=AE=E7=9A=84=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jumpserver/conf.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/jumpserver/conf.py b/apps/jumpserver/conf.py index 75978ea41..b30160d3a 100644 --- a/apps/jumpserver/conf.py +++ b/apps/jumpserver/conf.py @@ -18,6 +18,8 @@ from django.urls import reverse_lazy BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) PROJECT_DIR = os.path.dirname(BASE_DIR) +XPACK_DIR = os.path.join(BASE_DIR, 'xpack') +HAS_XPACK = os.path.isdir(XPACK_DIR) def import_string(dotted_path): @@ -190,7 +192,7 @@ class Config(dict): 'TASK_LOG_KEEP_DAYS': 10, 'ASSETS_PERM_CACHE_TIME': 3600 * 24, 'SECURITY_MFA_VERIFY_TTL': 3600, - 'ASSETS_PERM_CACHE_ENABLE': False, + 'ASSETS_PERM_CACHE_ENABLE': HAS_XPACK, 'SYSLOG_ADDR': '', # '192.168.0.1:514' 'SYSLOG_FACILITY': 'user', 'SYSLOG_SOCKTYPE': 2, From 1936a6d5eebbf04e0afeca4b8ac451acebeb22fd Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 8 May 2020 14:25:28 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[Update]=20=E5=8E=BB=E6=8E=89perms=20cache?= =?UTF-8?q?=20enable=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/apps.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/apps/perms/apps.py b/apps/perms/apps.py index d6fa5f712..d40373e08 100644 --- a/apps/perms/apps.py +++ b/apps/perms/apps.py @@ -1,14 +1,7 @@ from __future__ import unicode_literals -from django.conf import settings from django.apps import AppConfig class PermsConfig(AppConfig): name = 'perms' - - def ready(self): - from . import signals_handler - if not settings.XPACK_ENABLED: - settings.ASSETS_PERM_CACHE_ENABLE = False - return super().ready() From 331cfe2aede2ee13f54d38d3501044da5609f602 Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 8 May 2020 15:53:58 +0800 Subject: [PATCH 3/4] =?UTF-8?q?[Bugfix]=20=E4=BF=AE=E5=A4=8D=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E6=95=B0=E9=87=8F=E7=BC=93=E5=AD=98=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=B8=8D=E5=AF=B9=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/assets/utils.py | 8 ++------ apps/perms/utils/asset_permission.py | 4 +++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/apps/assets/utils.py b/apps/assets/utils.py index 8ec20388b..6b4d8111a 100644 --- a/apps/assets/utils.py +++ b/apps/assets/utils.py @@ -76,14 +76,9 @@ class TreeService(Tree): ancestor_ids.pop(0) return ancestor_ids - def ancestors(self, nid, with_self=False, deep=False, with_assets=True): + def ancestors(self, nid, with_self=False, deep=False): ancestor_ids = self.ancestors_ids(nid, with_self=with_self) ancestors = [self.get_node(i, deep=deep) for i in ancestor_ids] - if with_assets: - return ancestors - for n in ancestors: - n.data['assets'] = set() - n.data['all_assets'] = None return ancestors def get_node_full_tag(self, nid): @@ -108,6 +103,7 @@ class TreeService(Tree): node = super().get_node(nid) if deep: node = self.copy_node(node) + node.data = {} return node def parent(self, nid, deep=False): diff --git a/apps/perms/utils/asset_permission.py b/apps/perms/utils/asset_permission.py index 3a1f81a90..eb7b3e56c 100644 --- a/apps/perms/utils/asset_permission.py +++ b/apps/perms/utils/asset_permission.py @@ -301,7 +301,6 @@ class AssetPermissionUtil(AssetPermissionUtilCacheMixin): continue ancestors = self.full_tree.ancestors( child.identifier, with_self=False, deep=True, - with_assets=False, ) if not ancestors: continue @@ -350,6 +349,9 @@ class AssetPermissionUtil(AssetPermissionUtilCacheMixin): self.add_favorite_node_if_need(user_tree) self.set_user_tree_to_cache_if_need(user_tree) self.set_user_tree_to_local(user_tree) + for n in user_tree.all_nodes(): + if n.identifier in ['3', '3:0']: + logger.info('{} - {}'.format(n.tag, n.data)) return user_tree # Todo: 是否可以获取多个资产的系统用户 From c6ed6d8acbb012d96078097d3a70dd4bb2665f4a Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 8 May 2020 15:58:00 +0800 Subject: [PATCH 4/4] =?UTF-8?q?[Update]=20=E5=8E=BB=E6=8E=89debug=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/utils/asset_permission.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/perms/utils/asset_permission.py b/apps/perms/utils/asset_permission.py index eb7b3e56c..cd6e1805e 100644 --- a/apps/perms/utils/asset_permission.py +++ b/apps/perms/utils/asset_permission.py @@ -349,9 +349,6 @@ class AssetPermissionUtil(AssetPermissionUtilCacheMixin): self.add_favorite_node_if_need(user_tree) self.set_user_tree_to_cache_if_need(user_tree) self.set_user_tree_to_local(user_tree) - for n in user_tree.all_nodes(): - if n.identifier in ['3', '3:0']: - logger.info('{} - {}'.format(n.tag, n.data)) return user_tree # Todo: 是否可以获取多个资产的系统用户