jumpserver/apps/authentication/api/temp_token.py

28 lines
911 B
Python

from django.utils import timezone
from rest_framework.response import Response
from rest_framework.decorators import action
from common.drf.api import JMSModelViewSet
from common.permissions import IsValidUser
from ..models import TempToken
from ..serializers import TempTokenSerializer
class TempTokenViewSet(JMSModelViewSet):
serializer_class = TempTokenSerializer
permission_classes = [IsValidUser]
http_method_names = ['post', 'get', 'options', 'patch']
def get_queryset(self):
username = self.request.user.username
return TempToken.objects.filter(username=username)
@action(methods=['PATCH'], detail=True, url_path='expire')
def expire(self, *args, **kwargs):
instance = self.get_object()
instance.date_expired = timezone.now()
instance.save()
serializer = self.get_serializer(instance)
return Response(serializer.data)