perf: 优化 manager 和 acl 的 组织

This commit is contained in:
ibuler
2023-06-12 16:00:14 +08:00
parent 24272d3162
commit 5c2b54ad3b
5 changed files with 20 additions and 4 deletions

View File

@@ -12,6 +12,8 @@ __all__ = [
'BaseACL', 'UserBaseACL', 'UserAssetAccountBaseACL',
]
from orgs.utils import tmp_to_root_org
class ActionChoices(models.TextChoices):
reject = 'reject', _('Reject')
@@ -88,7 +90,8 @@ class UserBaseACL(BaseACL):
@classmethod
def get_user_acls(cls, user):
queryset = cls.objects.all()
q = cls.users.get_filter_q(user)
with tmp_to_root_org():
q = cls.users.get_filter_q(user)
queryset = queryset.filter(q)
return queryset.filter(is_active=True).distinct()
@@ -99,8 +102,6 @@ class UserAssetAccountBaseACL(OrgModelMixin, UserBaseACL):
accounts = models.JSONField(default=list, verbose_name=_("Accounts"))
objects = OrgManager.from_queryset(BaseACLQuerySet)()
objects = OrgManager.from_queryset(BaseACLQuerySet)()
class Meta(UserBaseACL.Meta):
unique_together = [('name', 'org_id')]
abstract = True