40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
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()
|