mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.1 KiB
31 lines
1.1 KiB
from rest_framework.mixins import CreateModelMixin
|
|
from rest_framework import views
|
|
from rest_framework.response import Response
|
|
from rest_framework import status
|
|
|
|
from common.drf.api import JMSGenericViewSet
|
|
from common.permissions import IsOrgAdminOrAppUser
|
|
from tickets.models import TicketSession
|
|
from tickets.serializers import TicketSessionRelationSerializer
|
|
from terminal.serializers import SessionSerializer
|
|
from orgs.utils import tmp_to_root_org
|
|
|
|
|
|
class TicketSessionRelationViewSet(CreateModelMixin, JMSGenericViewSet):
|
|
queryset = TicketSession
|
|
serializer_class = TicketSessionRelationSerializer
|
|
permission_classes = (IsOrgAdminOrAppUser, )
|
|
|
|
|
|
class TicketSessionApi(views.APIView):
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
with tmp_to_root_org():
|
|
ticketsession = TicketSession.objects.filter(ticket=self.kwargs['ticket_id']).first()
|
|
if not ticketsession:
|
|
return Response(status=status.HTTP_404_NOT_FOUND)
|
|
|
|
session = ticketsession.session
|
|
serializer = SessionSerializer(session)
|
|
return Response(serializer.data)
|