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"]
class
SSFProviderSerializer(authentik.enterprise.api.EnterpriseRequiredMixin, authentik.core.api.providers.ProviderSerializer):
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
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 )
Inherited Members
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 = {}
model =
<class 'authentik.enterprise.providers.ssf.models.SSFProvider'>
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
serializer_class =
<class 'SSFProviderSerializer'>