authentik.sources.scim.api.sources
SCIMSource API Views
1"""SCIMSource API Views""" 2 3from django.urls import reverse_lazy 4from rest_framework.fields import SerializerMethodField 5from rest_framework.viewsets import ModelViewSet 6 7from authentik.core.api.sources import SourceSerializer 8from authentik.core.api.tokens import TokenSerializer 9from authentik.core.api.used_by import UsedByMixin 10from authentik.sources.scim.models import SCIMSource 11 12 13class SCIMSourceSerializer(SourceSerializer): 14 """SCIMSource Serializer""" 15 16 root_url = SerializerMethodField() 17 token_obj = TokenSerializer(source="token", required=False, read_only=True) 18 19 def get_root_url(self, instance: SCIMSource) -> str: 20 """Get Root URL""" 21 relative_url = reverse_lazy( 22 "authentik_sources_scim:v2-root", 23 kwargs={"source_slug": instance.slug}, 24 ) 25 if "request" not in self.context: 26 return relative_url 27 return self.context["request"].build_absolute_uri(relative_url) 28 29 class Meta: 30 31 model = SCIMSource 32 fields = [ 33 "pk", 34 "name", 35 "slug", 36 "enabled", 37 "user_property_mappings", 38 "group_property_mappings", 39 "component", 40 "verbose_name", 41 "verbose_name_plural", 42 "meta_model_name", 43 "managed", 44 "user_path_template", 45 "root_url", 46 "token_obj", 47 ] 48 49 50class SCIMSourceViewSet(UsedByMixin, ModelViewSet): 51 """SCIMSource Viewset""" 52 53 queryset = SCIMSource.objects.all() 54 serializer_class = SCIMSourceSerializer 55 lookup_field = "slug" 56 filterset_fields = ["pbm_uuid", "name", "slug"] 57 search_fields = ["name", "slug", "token__identifier", "token__user__username"] 58 ordering = ["name"]
14class SCIMSourceSerializer(SourceSerializer): 15 """SCIMSource Serializer""" 16 17 root_url = SerializerMethodField() 18 token_obj = TokenSerializer(source="token", required=False, read_only=True) 19 20 def get_root_url(self, instance: SCIMSource) -> str: 21 """Get Root URL""" 22 relative_url = reverse_lazy( 23 "authentik_sources_scim:v2-root", 24 kwargs={"source_slug": instance.slug}, 25 ) 26 if "request" not in self.context: 27 return relative_url 28 return self.context["request"].build_absolute_uri(relative_url) 29 30 class Meta: 31 32 model = SCIMSource 33 fields = [ 34 "pk", 35 "name", 36 "slug", 37 "enabled", 38 "user_property_mappings", 39 "group_property_mappings", 40 "component", 41 "verbose_name", 42 "verbose_name_plural", 43 "meta_model_name", 44 "managed", 45 "user_path_template", 46 "root_url", 47 "token_obj", 48 ]
SCIMSource Serializer
20 def get_root_url(self, instance: SCIMSource) -> str: 21 """Get Root URL""" 22 relative_url = reverse_lazy( 23 "authentik_sources_scim:v2-root", 24 kwargs={"source_slug": instance.slug}, 25 ) 26 if "request" not in self.context: 27 return relative_url 28 return self.context["request"].build_absolute_uri(relative_url)
Get Root URL
Inherited Members
class
SCIMSourceSerializer.Meta:
30 class Meta: 31 32 model = SCIMSource 33 fields = [ 34 "pk", 35 "name", 36 "slug", 37 "enabled", 38 "user_property_mappings", 39 "group_property_mappings", 40 "component", 41 "verbose_name", 42 "verbose_name_plural", 43 "meta_model_name", 44 "managed", 45 "user_path_template", 46 "root_url", 47 "token_obj", 48 ]
model =
<class 'authentik.sources.scim.models.SCIMSource'>
class
SCIMSourceViewSet(authentik.core.api.used_by.UsedByMixin, rest_framework.viewsets.ModelViewSet):
51class SCIMSourceViewSet(UsedByMixin, ModelViewSet): 52 """SCIMSource Viewset""" 53 54 queryset = SCIMSource.objects.all() 55 serializer_class = SCIMSourceSerializer 56 lookup_field = "slug" 57 filterset_fields = ["pbm_uuid", "name", "slug"] 58 search_fields = ["name", "slug", "token__identifier", "token__user__username"] 59 ordering = ["name"]
SCIMSource Viewset
serializer_class =
<class 'SCIMSourceSerializer'>