from rest_framework import mixins, viewsets from rest_framework.permissions import IsAuthenticated from .filters import APIInteractionLogFilter, ModelChangeLogFilter, SecurityEventFilter from .models import APIInteractionLog, ModelChangeLog, SecurityEvent from .serializers import ( APIInteractionLogSerializer, ModelChangeLogSerializer, SecurityEventSerializer, ) class ModelChangeLogViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet): queryset = ModelChangeLog.objects.select_related("actor").order_by("-timestamp").all() serializer_class = ModelChangeLogSerializer permission_classes = [IsAuthenticated] filterset_class = ModelChangeLogFilter def get_queryset(self): return ModelChangeLog.objects.select_related("actor").order_by("-timestamp").all() class APIInteractionLogViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet): queryset = APIInteractionLog.objects.select_related("actor").order_by("-timestamp").all() serializer_class = APIInteractionLogSerializer permission_classes = [IsAuthenticated] filterset_class = APIInteractionLogFilter def get_queryset(self): return APIInteractionLog.objects.select_related("actor").order_by("-timestamp").all() class SecurityEventViewSet(mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet): queryset = SecurityEvent.objects.select_related("actor").order_by("-timestamp").all() serializer_class = SecurityEventSerializer permission_classes = [IsAuthenticated] filterset_class = SecurityEventFilter def get_queryset(self): return SecurityEvent.objects.select_related("actor").order_by("-timestamp").all()