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"]
class SCIMSourceSerializer(authentik.core.api.sources.SourceSerializer):
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

root_url
token_obj
def get_root_url(self, instance: authentik.sources.scim.models.SCIMSource) -> str:
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

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        ]
fields = ['pk', 'name', 'slug', 'enabled', 'user_property_mappings', 'group_property_mappings', 'component', 'verbose_name', 'verbose_name_plural', 'meta_model_name', 'managed', 'user_path_template', 'root_url', 'token_obj']
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

queryset = <InheritanceQuerySet []>
serializer_class = <class 'SCIMSourceSerializer'>
lookup_field = 'slug'
filterset_fields = ['pbm_uuid', 'name', 'slug']
search_fields = ['name', 'slug', 'token__identifier', 'token__user__username']
ordering = ['name']
name = None
description = None
suffix = None
detail = None
basename = None