perf: 优化查询 acls

This commit is contained in:
ibuler
2023-06-14 18:17:20 +08:00
parent 1b750cf51d
commit 53c3c90e2d
3 changed files with 18 additions and 11 deletions

View File

@@ -110,11 +110,11 @@ class UserAssetAccountBaseACL(OrgModelMixin, UserBaseACL):
@classmethod
def filter_queryset(cls, user=None, asset=None, account=None, account_username=None, **kwargs):
queryset = cls.objects.all()
org_id = None
if user:
q = cls.users.get_filter_q(user)
queryset = queryset.filter(q)
if asset:
org_id = asset.org_id
with tmp_to_org(org_id):
@@ -127,8 +127,6 @@ class UserAssetAccountBaseACL(OrgModelMixin, UserBaseACL):
models.Q(accounts__contains='*') | \
models.Q(accounts__contains='@ALL')
queryset = queryset.filter(q)
if org_id:
kwargs['org_id'] = org_id
if kwargs:
queryset = queryset.filter(**kwargs)
return queryset.valid().distinct()