jumpserver/apps/tickets/api/login_confirm.py

40 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
#
from rest_framework import viewsets, generics
from django.shortcuts import get_object_or_404
from common.permissions import IsValidUser
from common.mixins import CommonApiMixin
from .. import serializers
from ..models import LoginConfirmTicket
class LoginConfirmTicketViewSet(CommonApiMixin, viewsets.ModelViewSet):
serializer_class = serializers.LoginConfirmTicketSerializer
permission_classes = (IsValidUser,)
filter_fields = ['status', 'title']
search_fields = ['user_display', 'title', 'ip', 'city']
def get_queryset(self):
queryset = LoginConfirmTicket.objects.all()\
.filter(assignees=self.request.user)
return queryset
class LoginConfirmTicketsCreateActionApi(generics.CreateAPIView):
permission_classes = (IsValidUser,)
serializer_class = serializers.LoginConfirmTicketActionSerializer
def get_ticket(self):
ticket_id = self.kwargs.get('pk')
queryset = LoginConfirmTicket.objects.all()\
.filter(assignees=self.request.user)
ticket = get_object_or_404(queryset, id=ticket_id)
return ticket
def get_serializer_context(self):
context = super().get_serializer_context()
ticket = self.get_ticket()
context['ticket'] = ticket
return context