From d7ca1a09d430b44f352f2b5ecfa07fc83a9bc250 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Mon, 11 Sep 2023 16:22:11 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20connectiontoken=20=E6=B7=BB=E5=8A=A0=20?= =?UTF-8?q?connect=5Foptions=20file=5Fname=5Fconflict=5Fresolution?= =?UTF-8?q?=E5=8F=82=E6=95=B0=20=E7=BB=99koko=E5=A4=84=E7=90=86=E5=86=B2?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E6=96=87=E4=BB=B6=E5=90=8D=20(#11535)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: feng <1304903146@qq.com> --- apps/authentication/api/connection_token.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/apps/authentication/api/connection_token.py b/apps/authentication/api/connection_token.py index e424fe7e3..8a0f1a05a 100644 --- a/apps/authentication/api/connection_token.py +++ b/apps/authentication/api/connection_token.py @@ -24,6 +24,8 @@ from orgs.mixins.api import RootOrgViewMixin from perms.models import ActionChoices from terminal.connect_methods import NativeClient, ConnectMethodUtil from terminal.models import EndpointRule, Endpoint +from users.const import FileNameConflictResolution +from users.models import Preference from ..models import ConnectionToken, date_expired_default from ..serializers import ( ConnectionTokenSerializer, ConnectionTokenSecretSerializer, @@ -310,9 +312,20 @@ class ConnectionTokenViewSet(ExtraActionApiMixin, RootOrgViewMixin, JMSModelView self.validate_serializer(serializer) return super().perform_create(serializer) + def _insert_connect_options(self, data): + name = 'file_name_conflict_resolution' + connect_options = data.pop('connect_options', {}) + preference = Preference.objects.filter( + name=name, user=self.request.user, category='koko' + ).first() + value = preference.value if preference else FileNameConflictResolution.REPLACE + connect_options[name] = value + data['connect_options'] = connect_options + def validate_serializer(self, serializer): data = serializer.validated_data user = self.get_user(serializer) + self._insert_connect_options(data) asset = data.get('asset') account_name = data.get('account') _data = self._validate(user, asset, account_name)