
* core: add used_by API to show what objects are affected before deletion Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web/elements: add support for used_by API Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * core: add authentik_used_by_shadows to shadow other models Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: implement used_by API Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * *: fix duplicate imports Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * core: add action field to used_by api Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: add UI for used_by action Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: add notice to tenant form Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * core: fix naming in used_by Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * web: check length for used_by Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * core: fix used_by for non-pk models Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * *: improve __str__ on models Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org> * core: add support for many to many in used_by Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
"""Notification API Views"""
|
|
from django_filters.rest_framework import DjangoFilterBackend
|
|
from rest_framework import mixins
|
|
from rest_framework.fields import ReadOnlyField
|
|
from rest_framework.filters import OrderingFilter, SearchFilter
|
|
from rest_framework.serializers import ModelSerializer
|
|
from rest_framework.viewsets import GenericViewSet
|
|
|
|
from authentik.api.authorization import OwnerFilter, OwnerPermissions
|
|
from authentik.core.api.used_by import UsedByMixin
|
|
from authentik.events.api.event import EventSerializer
|
|
from authentik.events.models import Notification
|
|
|
|
|
|
class NotificationSerializer(ModelSerializer):
|
|
"""Notification Serializer"""
|
|
|
|
body = ReadOnlyField()
|
|
severity = ReadOnlyField()
|
|
event = EventSerializer(required=False)
|
|
|
|
class Meta:
|
|
|
|
model = Notification
|
|
fields = [
|
|
"pk",
|
|
"severity",
|
|
"body",
|
|
"created",
|
|
"event",
|
|
"seen",
|
|
]
|
|
|
|
|
|
class NotificationViewSet(
|
|
mixins.RetrieveModelMixin,
|
|
mixins.UpdateModelMixin,
|
|
mixins.DestroyModelMixin,
|
|
UsedByMixin,
|
|
mixins.ListModelMixin,
|
|
GenericViewSet,
|
|
):
|
|
"""Notification Viewset"""
|
|
|
|
queryset = Notification.objects.all()
|
|
serializer_class = NotificationSerializer
|
|
filterset_fields = [
|
|
"severity",
|
|
"body",
|
|
"created",
|
|
"event",
|
|
"seen",
|
|
]
|
|
permission_classes = [OwnerPermissions]
|
|
filter_backends = [OwnerFilter, DjangoFilterBackend, OrderingFilter, SearchFilter]
|