From 17e3ddda05ddb45454f69b05f391b275df00a7b7 Mon Sep 17 00:00:00 2001 From: ibuler Date: Tue, 25 Apr 2023 14:15:28 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=20rdp=20console?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/authentication/api/connection_token.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/authentication/api/connection_token.py b/apps/authentication/api/connection_token.py index a27c10d55..eca171f82 100644 --- a/apps/authentication/api/connection_token.py +++ b/apps/authentication/api/connection_token.py @@ -1,26 +1,27 @@ import abc -import os -import json import base64 +import json +import os import urllib.parse + from django.http import HttpResponse from django.shortcuts import get_object_or_404 -from rest_framework.exceptions import PermissionDenied -from rest_framework.decorators import action -from rest_framework.response import Response from rest_framework import status +from rest_framework.decorators import action +from rest_framework.exceptions import PermissionDenied from rest_framework.request import Request +from rest_framework.response import Response from common.drf.api import JMSModelViewSet from common.http import is_true from orgs.mixins.api import RootOrgViewMixin from perms.models.base import Action from terminal.models import EndpointRule +from ..models import ConnectionToken from ..serializers import ( ConnectionTokenSerializer, ConnectionTokenSecretSerializer, SuperConnectionTokenSerializer, ConnectionTokenDisplaySerializer, ) -from ..models import ConnectionToken __all__ = ['ConnectionTokenViewSet', 'SuperConnectionTokenViewSet'] @@ -165,6 +166,9 @@ class ConnectionTokenMixin: rdp_options['session bpp:i'] = os.getenv('JUMPSERVER_COLOR_DEPTH', '32') rdp_options['audiomode:i'] = self.parse_env_bool('JUMPSERVER_DISABLE_AUDIO', 'false', '2', '0') + if token.asset and token.asset.platform.meta.get('console', None) == 'true': + rdp_options['administrative session:i:'] = '1' + if token.asset: name = token.asset.hostname elif token.application and token.application.category_remote_app: