From 01ead7c8e1429149df769f71b5c7707ce811a842 Mon Sep 17 00:00:00 2001 From: jym503558564 <503558564@qq.com> Date: Tue, 15 Oct 2019 12:41:29 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[Bugfix]=20=E4=BF=AE=E5=A4=8D=E8=B5=84?= =?UTF-8?q?=E4=BA=A7=E6=8E=88=E6=9D=83=E5=88=97=E8=A1=A8=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=20=E6=97=A0=E6=95=88=E7=9A=84=20=20=E5=87=BA=E7=8E=B0500?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/models/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/perms/models/base.py b/apps/perms/models/base.py index b36d009b3..878d9d739 100644 --- a/apps/perms/models/base.py +++ b/apps/perms/models/base.py @@ -29,7 +29,7 @@ class BasePermissionQuerySet(models.QuerySet): return self.filter(is_active=False) def invalid(self): - now = timezone.now + now = timezone.now() q = ( Q(is_active=False) | Q(date_start__gt=now) | From ee97144a10ff1000dde30c499753cf44335c2312 Mon Sep 17 00:00:00 2001 From: jym503558564 <503558564@qq.com> Date: Thu, 17 Oct 2019 11:03:06 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[Bugfix]=20=E4=BF=AE=E5=A4=8D=E8=B5=84?= =?UTF-8?q?=E4=BA=A7=E6=8E=88=E6=9D=83=E5=88=97=E8=A1=A8=20=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E6=90=9C=E7=B4=A2=E6=8A=A5500=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/api/asset_permission.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apps/perms/api/asset_permission.py b/apps/perms/api/asset_permission.py index 41c64c7f1..1088117e8 100644 --- a/apps/perms/api/asset_permission.py +++ b/apps/perms/api/asset_permission.py @@ -68,15 +68,18 @@ class AssetPermissionViewSet(viewsets.ModelViewSet): node_id = self.request.query_params.get('node_id') node_name = self.request.query_params.get('node') if node_id: - node = get_object_or_none(Node, pk=node_id) + nodes = Node.objects.filter(pk=node_id) elif node_name: - node = get_object_or_none(Node, name=node_name) + nodes = Node.objects.filter(value=node_name) else: return queryset - if not node: + if not nodes: return queryset.none() - nodes = node.get_ancestors(with_self=True) - queryset = queryset.filter(nodes__in=nodes) + + related_nodes = [] + for node in nodes: + [related_nodes.append(item) for item in node.get_ancestors(with_self=True)] + queryset = queryset.filter(nodes__in=related_nodes) return queryset def filter_asset(self, queryset): From 70664d435f2ba80b385f2f0645822102e9a68b6a Mon Sep 17 00:00:00 2001 From: jym503558564 <503558564@qq.com> Date: Thu, 17 Oct 2019 11:59:18 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[Update]=20=E4=BF=AE=E6=94=B9=E5=B0=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/api/asset_permission.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/perms/api/asset_permission.py b/apps/perms/api/asset_permission.py index 1088117e8..180878d30 100644 --- a/apps/perms/api/asset_permission.py +++ b/apps/perms/api/asset_permission.py @@ -68,18 +68,18 @@ class AssetPermissionViewSet(viewsets.ModelViewSet): node_id = self.request.query_params.get('node_id') node_name = self.request.query_params.get('node') if node_id: - nodes = Node.objects.filter(pk=node_id) + _nodes = Node.objects.filter(pk=node_id) elif node_name: - nodes = Node.objects.filter(value=node_name) + _nodes = Node.objects.filter(value=node_name) else: return queryset - if not nodes: + if not _nodes: return queryset.none() - related_nodes = [] - for node in nodes: - [related_nodes.append(item) for item in node.get_ancestors(with_self=True)] - queryset = queryset.filter(nodes__in=related_nodes) + nodes = set() + for node in _nodes: + nodes |= set(node.get_ancestors(with_self=True)) + queryset = queryset.filter(nodes__in=nodes) return queryset def filter_asset(self, queryset):