From 003601bbddf8db6b35a0f6b5905c870420444b05 Mon Sep 17 00:00:00 2001 From: BaiJiangJie Date: Tue, 2 Jul 2019 17:48:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[Bugfix]=20=E8=A7=A3=E5=86=B3=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E6=8E=88=E6=9D=83=E8=AF=A6=E6=83=85=E9=A1=B5=E7=9A=84?= =?UTF-8?q?=E8=B5=84=E4=BA=A7=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/models/asset_permission.py | 8 ++++++++ apps/perms/views/asset_permission.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/perms/models/asset_permission.py b/apps/perms/models/asset_permission.py index da8001227..aba64ee0c 100644 --- a/apps/perms/models/asset_permission.py +++ b/apps/perms/models/asset_permission.py @@ -96,6 +96,14 @@ class AssetPermission(BasePermission): def get_queryset_with_prefetch(cls): return cls.objects.all().valid().prefetch_related('nodes', 'assets', 'system_users') + def get_all_assets(self): + assets = set(self.assets.all()) + for node in self.nodes.all(): + _assets = node.get_all_assets() + set_or_append_attr_bulk(_assets, 'inherit', node.value) + assets.update(set(_assets)) + return assets + class NodePermission(OrgModelMixin): id = models.UUIDField(default=uuid.uuid4, primary_key=True) diff --git a/apps/perms/views/asset_permission.py b/apps/perms/views/asset_permission.py index e354e7479..ca2d27e42 100644 --- a/apps/perms/views/asset_permission.py +++ b/apps/perms/views/asset_permission.py @@ -156,7 +156,7 @@ class AssetPermissionAssetView(PermissionsMixin, permission_classes = [IsOrgAdmin] def get(self, request, *args, **kwargs): - self.object = self.get_object(queryset = AssetPermission.objects.all()) + self.object = self.get_object(queryset=AssetPermission.objects.all()) return super().get(request, *args, **kwargs) def get_queryset(self): From 186c22decd08ba91bf09043a28b247bc02b9f6da Mon Sep 17 00:00:00 2001 From: BaiJiangJie Date: Tue, 2 Jul 2019 19:30:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[Update]=20=E8=B5=84=E4=BA=A7=E6=8E=88?= =?UTF-8?q?=E6=9D=83Model=E6=A8=A1=E5=9D=97=E6=B7=BB=E5=8A=A0=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/perms/models/asset_permission.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/perms/models/asset_permission.py b/apps/perms/models/asset_permission.py index 29d8d10ec..296e0e5d4 100644 --- a/apps/perms/models/asset_permission.py +++ b/apps/perms/models/asset_permission.py @@ -4,7 +4,7 @@ from functools import reduce from django.db import models from django.utils.translation import ugettext_lazy as _ -from common.utils import date_expired_default +from common.utils import date_expired_default, set_or_append_attr_bulk from orgs.mixins import OrgModelMixin from .base import BasePermission