From 73b75df524bc08e52eee475d01039abbec5ed391 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Tue, 17 Oct 2023 14:28:19 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E8=B5=84=E4=BA=A7acl=E6=8B=92=E7=BB=9D?= =?UTF-8?q?=E5=90=8E=E6=B2=A1=E8=AE=B0=E5=BD=95=E6=93=8D=E4=BD=9C=E6=97=A5?= =?UTF-8?q?=E5=BF=97=20(#11868)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: feng <1304903146@qq.com> --- apps/audits/api.py | 6 +++--- apps/audits/backends/db.py | 2 +- apps/authentication/api/connection_token.py | 8 ++++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/audits/api.py b/apps/audits/api.py index 4b4a061b2..f332c5718 100644 --- a/apps/audits/api.py +++ b/apps/audits/api.py @@ -218,10 +218,10 @@ class OperateLogViewSet(OrgReadonlyModelViewSet): return super().get_serializer_class() def get_queryset(self): - org_q = Q() + qs = OperateLog.objects.all() if self.is_action_detail: - org_q |= Q(org_id=Organization.SYSTEM_ID) - qs = OperateLog.objects.filter(org_q) + with tmp_to_root_org(): + qs |= OperateLog.objects.filter(org_id=Organization.SYSTEM_ID) es_config = settings.OPERATE_LOG_ELASTICSEARCH_CONFIG if es_config: engine_mod = import_module(TYPE_ENGINE_MAPPING['es']) diff --git a/apps/audits/backends/db.py b/apps/audits/backends/db.py index bb2e241c1..870c25c9c 100644 --- a/apps/audits/backends/db.py +++ b/apps/audits/backends/db.py @@ -58,7 +58,7 @@ class OperateLogStore(object): return diff_list def save(self, **kwargs): - log_id = kwargs.get('id') + log_id = kwargs.pop('id', None) before = kwargs.pop('before') or {} after = kwargs.pop('after') or {} diff --git a/apps/authentication/api/connection_token.py b/apps/authentication/api/connection_token.py index c14df034d..8cefbe4e6 100644 --- a/apps/authentication/api/connection_token.py +++ b/apps/authentication/api/connection_token.py @@ -432,6 +432,14 @@ class ConnectionTokenViewSet(ExtraActionApiMixin, RootOrgViewMixin, JMSModelView reviewer, asset, user, input_username ).publish_async() + def create(self, request, *args, **kwargs): + try: + response = super().create(request, *args, **kwargs) + except JMSException as e: + data = {'code': e.detail.code, 'detail': e.detail} + return Response(data, status=e.status_code) + return response + class SuperConnectionTokenViewSet(ConnectionTokenViewSet): serializer_classes = {