diff --git a/apps/terminal/api/session.py b/apps/terminal/api/session.py index 7c4c79ee9..334a19cf4 100644 --- a/apps/terminal/api/session.py +++ b/apps/terminal/api/session.py @@ -3,7 +3,6 @@ import os import tarfile -from django.db.models import F, Max from django.shortcuts import get_object_or_404, reverse from django.utils.translation import ugettext as _ from django.utils.encoding import escape_uri_path @@ -16,7 +15,6 @@ from rest_framework.permissions import IsAuthenticated from rest_framework import generics from common.utils import data_to_json -from assets.models import Asset from common.const.http import GET from common.utils import get_logger, get_object_or_none from common.mixins.api import AsyncApiMixin @@ -30,11 +28,10 @@ from ..utils import find_session_replay_local, download_session_replay from ..models import Session from .. import serializers from terminal.utils import is_session_approver -from assets.serializers import AssetSerializer __all__ = [ 'SessionViewSet', 'SessionReplayViewSet', 'SessionJoinValidateAPI', - 'MySessionAPIView', 'MySessionAssetAPIView', + 'MySessionAPIView', ] logger = get_logger(__name__) @@ -51,42 +48,6 @@ class MySessionAPIView(generics.ListAPIView): return qs -class MySessionAssetAPIView(generics.ListAPIView): - queryset = Asset.objects.all() - permission_classes = (IsAuthenticated, ) - serializer_class = AssetSerializer - - def list(self, request, *args, **kwargs): - with tmp_to_root_org(): - user = self.request.user - - asset_ids = Session.objects.filter(user_id=user.id).exclude( - asset_id='' # xrdp bug 没有提交 asset_id,已修复,但要兼容旧数据 - ).values_list('asset_id').annotate( - max_date_start=Max(F('date_start')) - ).order_by('-max_date_start').values_list('asset_id', flat=True) - page = self.paginate_queryset(asset_ids) - if page is not None: - serializer = self._to_serializer(page) - return self.get_paginated_response(serializer.data) - - serializer = self._to_serializer(asset_ids) - return Response(serializer.data) - - def _to_serializer(self, asset_ids): - assets_qs = Asset.objects.filter(id__in=list(asset_ids)) - serializer_cls = self.get_serializer_class() - if hasattr(serializer_cls, 'setup_eager_loading'): - assets_qs = serializer_cls.setup_eager_loading(assets_qs) - - id_asset_map = {str(asset.id): asset for asset in assets_qs} - assets = [] - for i in asset_ids: - assets.append(id_asset_map[i]) - serializer = self.get_serializer(assets, many=True) - return serializer - - class SessionViewSet(OrgBulkModelViewSet): model = Session serializer_classes = { diff --git a/apps/terminal/urls/api_urls.py b/apps/terminal/urls/api_urls.py index f03ba083a..9366332e2 100644 --- a/apps/terminal/urls/api_urls.py +++ b/apps/terminal/urls/api_urls.py @@ -24,7 +24,6 @@ router.register(r'session-sharings', api.SessionSharingViewSet, 'session-sharing router.register(r'session-join-records', api.SessionJoinRecordsViewSet, 'session-sharing-record') urlpatterns = [ - path('my-login-assets/', api.MySessionAssetAPIView.as_view(), name='my-login-asset'), path('my-sessions/', api.MySessionAPIView.as_view(), name='my-session'), path('terminal-registrations/', api.TerminalRegistrationApi.as_view(), name='terminal-registration'), path('registration/', api.TerminalRegistrationApi.as_view(), name='registration'),