authentik.enterprise.providers.ssf.api.providers

SSF Provider API Views

 1"""SSF Provider API Views"""
 2
 3from django.urls import reverse
 4from rest_framework.fields import SerializerMethodField
 5from rest_framework.request import Request
 6from rest_framework.viewsets import ModelViewSet
 7
 8from authentik.core.api.providers import ProviderSerializer
 9from authentik.core.api.tokens import TokenSerializer
10from authentik.core.api.used_by import UsedByMixin
11from authentik.enterprise.api import EnterpriseRequiredMixin
12from authentik.enterprise.providers.ssf.models import SSFProvider
13
14
15class SSFProviderSerializer(EnterpriseRequiredMixin, ProviderSerializer):
16    """SSFProvider Serializer"""
17
18    ssf_url = SerializerMethodField()
19    token_obj = TokenSerializer(source="token", required=False, read_only=True)
20
21    oidc_auth_providers_obj = ProviderSerializer(
22        read_only=True, source="oidc_auth_providers", many=True
23    )
24
25    def get_ssf_url(self, instance: SSFProvider) -> str | None:
26        request: Request = self._context.get("request")
27        if not request:
28            return None
29        if not instance.backchannel_application:
30            return None
31        return request.build_absolute_uri(
32            reverse(
33                "authentik_providers_ssf:configuration",
34                kwargs={
35                    "application_slug": instance.backchannel_application.slug,
36                },
37            )
38        )
39
40    class Meta:
41        model = SSFProvider
42        fields = [
43            "pk",
44            "name",
45            "component",
46            "verbose_name",
47            "verbose_name_plural",
48            "meta_model_name",
49            "signing_key",
50            "token_obj",
51            "oidc_auth_providers",
52            "oidc_auth_providers_obj",
53            "ssf_url",
54            "event_retention",
55            "push_verify_certificates",
56        ]
57        extra_kwargs = {}
58
59
60class SSFProviderViewSet(UsedByMixin, ModelViewSet):
61    """SSFProvider Viewset"""
62
63    queryset = SSFProvider.objects.all().prefetch_related("oidc_auth_providers")
64    serializer_class = SSFProviderSerializer
65    filterset_fields = {
66        "application": ["isnull"],
67        "name": ["iexact"],
68    }
69    search_fields = ["name"]
70    ordering = ["name"]
16class SSFProviderSerializer(EnterpriseRequiredMixin, ProviderSerializer):
17    """SSFProvider Serializer"""
18
19    ssf_url = SerializerMethodField()
20    token_obj = TokenSerializer(source="token", required=False, read_only=True)
21
22    oidc_auth_providers_obj = ProviderSerializer(
23        read_only=True, source="oidc_auth_providers", many=True
24    )
25
26    def get_ssf_url(self, instance: SSFProvider) -> str | None:
27        request: Request = self._context.get("request")
28        if not request:
29            return None
30        if not instance.backchannel_application:
31            return None
32        return request.build_absolute_uri(
33            reverse(
34                "authentik_providers_ssf:configuration",
35                kwargs={
36                    "application_slug": instance.backchannel_application.slug,
37                },
38            )
39        )
40
41    class Meta:
42        model = SSFProvider
43        fields = [
44            "pk",
45            "name",
46            "component",
47            "verbose_name",
48            "verbose_name_plural",
49            "meta_model_name",
50            "signing_key",
51            "token_obj",
52            "oidc_auth_providers",
53            "oidc_auth_providers_obj",
54            "ssf_url",
55            "event_retention",
56            "push_verify_certificates",
57        ]
58        extra_kwargs = {}

SSFProvider Serializer

ssf_url
token_obj
oidc_auth_providers_obj
def get_ssf_url( self, instance: authentik.enterprise.providers.ssf.models.SSFProvider) -> str | None:
26    def get_ssf_url(self, instance: SSFProvider) -> str | None:
27        request: Request = self._context.get("request")
28        if not request:
29            return None
30        if not instance.backchannel_application:
31            return None
32        return request.build_absolute_uri(
33            reverse(
34                "authentik_providers_ssf:configuration",
35                kwargs={
36                    "application_slug": instance.backchannel_application.slug,
37                },
38            )
39        )
class SSFProviderSerializer.Meta:
41    class Meta:
42        model = SSFProvider
43        fields = [
44            "pk",
45            "name",
46            "component",
47            "verbose_name",
48            "verbose_name_plural",
49            "meta_model_name",
50            "signing_key",
51            "token_obj",
52            "oidc_auth_providers",
53            "oidc_auth_providers_obj",
54            "ssf_url",
55            "event_retention",
56            "push_verify_certificates",
57        ]
58        extra_kwargs = {}
fields = ['pk', 'name', 'component', 'verbose_name', 'verbose_name_plural', 'meta_model_name', 'signing_key', 'token_obj', 'oidc_auth_providers', 'oidc_auth_providers_obj', 'ssf_url', 'event_retention', 'push_verify_certificates']
extra_kwargs = {}
class SSFProviderViewSet(authentik.core.api.used_by.UsedByMixin, rest_framework.viewsets.ModelViewSet):
61class SSFProviderViewSet(UsedByMixin, ModelViewSet):
62    """SSFProvider Viewset"""
63
64    queryset = SSFProvider.objects.all().prefetch_related("oidc_auth_providers")
65    serializer_class = SSFProviderSerializer
66    filterset_fields = {
67        "application": ["isnull"],
68        "name": ["iexact"],
69    }
70    search_fields = ["name"]
71    ordering = ["name"]

SSFProvider Viewset

queryset = <InheritanceQuerySet []>
serializer_class = <class 'SSFProviderSerializer'>
filterset_fields = {'application': ['isnull'], 'name': ['iexact']}
search_fields = ['name']
ordering = ['name']
name = None
description = None
suffix = None
detail = None
basename = None