From fa21c83db3b7a18fcc3c9aea82edb2c5a4ffe7a7 Mon Sep 17 00:00:00 2001 From: ibuler Date: Thu, 25 May 2023 16:26:35 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20LDAP=20=E6=B5=8B=E8=AF=95=20api=20?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E5=BC=82=E6=AD=A5=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/settings/api/ldap.py | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/apps/settings/api/ldap.py b/apps/settings/api/ldap.py index e45414b81..9a377eb75 100644 --- a/apps/settings/api/ldap.py +++ b/apps/settings/api/ldap.py @@ -2,37 +2,44 @@ # import threading -from rest_framework import generics -from rest_framework.views import Response, APIView -from orgs.models import Organization -from django.utils.translation import ugettext_lazy as _ -from django.conf import settings -from ..models import Setting -from ..utils import ( - LDAPServerUtil, LDAPCacheUtil, LDAPImportUtil, LDAPSyncUtil, - LDAP_USE_CACHE_FLAGS, LDAPTestUtil -) -from ..tasks import sync_ldap_user +from django.conf import settings +from django.utils.translation import ugettext_lazy as _ +from rest_framework import generics +from rest_framework.generics import CreateAPIView +from rest_framework.views import Response, APIView + +from common.api import AsyncApiMixin from common.utils import get_logger, is_uuid +from orgs.models import Organization +from orgs.utils import current_org +from users.models import User +from ..models import Setting from ..serializers import ( LDAPTestConfigSerializer, LDAPUserSerializer, LDAPTestLoginSerializer ) -from orgs.utils import current_org -from users.models import User +from ..tasks import sync_ldap_user +from ..utils import ( + LDAPServerUtil, LDAPCacheUtil, LDAPImportUtil, LDAPSyncUtil, + LDAP_USE_CACHE_FLAGS, LDAPTestUtil +) logger = get_logger(__file__) -class LDAPTestingConfigAPI(APIView): +class LDAPTestingConfigAPI(AsyncApiMixin, CreateAPIView): serializer_class = LDAPTestConfigSerializer perm_model = Setting rbac_perms = { - 'POST': 'settings.change_auth' + 'POST': 'settings.change_auth', + 'create': 'settings.change_auth', } - def post(self, request): + def is_need_async(self): + return True + + def create(self, request, *args, **kwargs): serializer = self.serializer_class(data=request.data) if not serializer.is_valid(): return Response({"error": str(serializer.errors)}, status=400)