From 1daf1acaf327fd2f7b1f77174a07a91987a6d134 Mon Sep 17 00:00:00 2001 From: ibuler Date: Fri, 13 Oct 2023 16:31:05 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BF=AE=E6=94=B9=20access=20key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/authentication/api/access_key.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/apps/authentication/api/access_key.py b/apps/authentication/api/access_key.py index 1ce992629..027fdf75f 100644 --- a/apps/authentication/api/access_key.py +++ b/apps/authentication/api/access_key.py @@ -7,6 +7,8 @@ from rest_framework.response import Response from common.api import JMSModelViewSet from rbac.permissions import RBACPermission +from ..const import ConfirmType +from ..permissions import UserConfirmation from ..serializers import AccessKeySerializer, AccessKeyCreateSerializer @@ -27,20 +29,20 @@ class AccessKeyViewSet(JMSModelViewSet): if self.action == 'create': self.permission_classes = [ - RBACPermission, + RBACPermission, UserConfirmation.require(ConfirmType.PASSWORD) ] return super().get_permissions() - def create(self, request, *args, **kwargs): - serializer = self.get_serializer(data=request.data) - serializer.is_valid(raise_exception=True) - key = self.perform_create(serializer) - serializer = self.get_serializer(instance=key) - return Response(serializer.data, status=201) - def perform_create(self, serializer): user = self.request.user if user.access_keys.count() >= 10: raise serializers.ValidationError(_('Access keys can be created at most 10')) key = user.create_access_key() return key + + def create(self, request, *args, **kwargs): + serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) + key = self.perform_create(serializer) + serializer = self.get_serializer(instance=key) + return Response(serializer.data, status=201)