|
|
@ -3,33 +3,33 @@ |
|
|
|
import os |
|
|
|
import os |
|
|
|
import tarfile |
|
|
|
import tarfile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from django.core.files.storage import default_storage |
|
|
|
from django.db.models import F |
|
|
|
from django.db.models import F |
|
|
|
|
|
|
|
from django.http import FileResponse |
|
|
|
from django.shortcuts import get_object_or_404, reverse |
|
|
|
from django.shortcuts import get_object_or_404, reverse |
|
|
|
from django.utils.translation import ugettext as _ |
|
|
|
|
|
|
|
from django.utils.encoding import escape_uri_path |
|
|
|
from django.utils.encoding import escape_uri_path |
|
|
|
from django.http import FileResponse |
|
|
|
from django.utils.translation import ugettext as _ |
|
|
|
from django.core.files.storage import default_storage |
|
|
|
from rest_framework import generics |
|
|
|
from rest_framework import viewsets, views |
|
|
|
from rest_framework import viewsets, views |
|
|
|
from rest_framework.response import Response |
|
|
|
|
|
|
|
from rest_framework.decorators import action |
|
|
|
from rest_framework.decorators import action |
|
|
|
from rest_framework.permissions import IsAuthenticated |
|
|
|
from rest_framework.permissions import IsAuthenticated |
|
|
|
from rest_framework import generics |
|
|
|
from rest_framework.response import Response |
|
|
|
|
|
|
|
|
|
|
|
from common.utils import data_to_json |
|
|
|
|
|
|
|
from common.const.http import GET |
|
|
|
from common.const.http import GET |
|
|
|
from common.utils import get_logger, get_object_or_none |
|
|
|
|
|
|
|
from common.mixins.api import AsyncApiMixin |
|
|
|
|
|
|
|
from common.drf.filters import DatetimeRangeFilter |
|
|
|
from common.drf.filters import DatetimeRangeFilter |
|
|
|
from common.drf.renders import PassthroughRenderer |
|
|
|
from common.drf.renders import PassthroughRenderer |
|
|
|
|
|
|
|
from common.mixins.api import AsyncApiMixin |
|
|
|
|
|
|
|
from common.utils import data_to_json |
|
|
|
|
|
|
|
from common.utils import get_logger, get_object_or_none |
|
|
|
from orgs.mixins.api import OrgBulkModelViewSet |
|
|
|
from orgs.mixins.api import OrgBulkModelViewSet |
|
|
|
from orgs.utils import tmp_to_root_org, tmp_to_org |
|
|
|
from orgs.utils import tmp_to_root_org, tmp_to_org |
|
|
|
from users.models import User |
|
|
|
from terminal import serializers |
|
|
|
|
|
|
|
from terminal.models import Session |
|
|
|
from terminal.utils import ( |
|
|
|
from terminal.utils import ( |
|
|
|
find_session_replay_local, download_session_replay, |
|
|
|
find_session_replay_local, download_session_replay, |
|
|
|
is_session_approver, get_session_replay_url |
|
|
|
is_session_approver, get_session_replay_url |
|
|
|
) |
|
|
|
) |
|
|
|
from terminal.models import Session |
|
|
|
from users.models import User |
|
|
|
from terminal import serializers |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
__all__ = [ |
|
|
|
__all__ = [ |
|
|
|
'SessionViewSet', 'SessionReplayViewSet', |
|
|
|
'SessionViewSet', 'SessionReplayViewSet', |
|
|
@ -40,7 +40,7 @@ logger = get_logger(__name__) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MySessionAPIView(generics.ListAPIView): |
|
|
|
class MySessionAPIView(generics.ListAPIView): |
|
|
|
permission_classes = (IsAuthenticated, ) |
|
|
|
permission_classes = (IsAuthenticated,) |
|
|
|
serializer_class = serializers.SessionSerializer |
|
|
|
serializer_class = serializers.SessionSerializer |
|
|
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
def get_queryset(self): |
|
|
@ -109,7 +109,7 @@ class SessionViewSet(OrgBulkModelViewSet): |
|
|
|
return response |
|
|
|
return response |
|
|
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
def get_queryset(self): |
|
|
|
queryset = super().get_queryset().prefetch_related('terminal')\ |
|
|
|
queryset = super().get_queryset().prefetch_related('terminal') \ |
|
|
|
.annotate(terminal_display=F('terminal__name')) |
|
|
|
.annotate(terminal_display=F('terminal__name')) |
|
|
|
return queryset |
|
|
|
return queryset |
|
|
|
|
|
|
|
|
|
|
@ -169,7 +169,7 @@ class SessionReplayViewSet(AsyncApiMixin, viewsets.ViewSet): |
|
|
|
data = { |
|
|
|
data = { |
|
|
|
'type': tp, 'src': url, |
|
|
|
'type': tp, 'src': url, |
|
|
|
'user': session.user, 'asset': session.asset, |
|
|
|
'user': session.user, 'asset': session.asset, |
|
|
|
'system_user': session.system_user, |
|
|
|
'system_user': session.account, |
|
|
|
'date_start': session.date_start, |
|
|
|
'date_start': session.date_start, |
|
|
|
'date_end': session.date_end, |
|
|
|
'date_end': session.date_end, |
|
|
|
'download_url': download_url, |
|
|
|
'download_url': download_url, |
|
|
|