authentik.endpoints.api.stages
1from django.utils.translation import gettext_lazy as _ 2from rest_framework.exceptions import ValidationError 3from rest_framework.viewsets import ModelViewSet 4 5from authentik.core.api.used_by import UsedByMixin 6from authentik.endpoints.api.connectors import ConnectorSerializer 7from authentik.endpoints.controller import Capabilities 8from authentik.endpoints.models import Connector, EndpointStage 9from authentik.flows.api.stages import StageSerializer 10 11 12class EndpointStageSerializer(StageSerializer): 13 """EndpointStage Serializer""" 14 15 connector_obj = ConnectorSerializer(source="connector", read_only=True) 16 17 def validate_connector(self, connector: Connector) -> Connector: 18 conn: Connector = Connector.objects.get_subclass(pk=connector.pk) 19 controller = conn.controller(conn) 20 if Capabilities.STAGE_ENDPOINTS not in controller.capabilities(): 21 raise ValidationError(_("Selected connector is not compatible with this stage.")) 22 return connector 23 24 class Meta: 25 model = EndpointStage 26 fields = StageSerializer.Meta.fields + [ 27 "connector", 28 "connector_obj", 29 "mode", 30 ] 31 32 33class EndpointStageViewSet(UsedByMixin, ModelViewSet): 34 """EndpointStage Viewset""" 35 36 queryset = EndpointStage.objects.all() 37 serializer_class = EndpointStageSerializer 38 filterset_fields = [ 39 "name", 40 ] 41 search_fields = ["name"] 42 ordering = ["name"]
13class EndpointStageSerializer(StageSerializer): 14 """EndpointStage Serializer""" 15 16 connector_obj = ConnectorSerializer(source="connector", read_only=True) 17 18 def validate_connector(self, connector: Connector) -> Connector: 19 conn: Connector = Connector.objects.get_subclass(pk=connector.pk) 20 controller = conn.controller(conn) 21 if Capabilities.STAGE_ENDPOINTS not in controller.capabilities(): 22 raise ValidationError(_("Selected connector is not compatible with this stage.")) 23 return connector 24 25 class Meta: 26 model = EndpointStage 27 fields = StageSerializer.Meta.fields + [ 28 "connector", 29 "connector_obj", 30 "mode", 31 ]
EndpointStage Serializer
def
validate_connector( self, connector: authentik.endpoints.models.Connector) -> authentik.endpoints.models.Connector:
18 def validate_connector(self, connector: Connector) -> Connector: 19 conn: Connector = Connector.objects.get_subclass(pk=connector.pk) 20 controller = conn.controller(conn) 21 if Capabilities.STAGE_ENDPOINTS not in controller.capabilities(): 22 raise ValidationError(_("Selected connector is not compatible with this stage.")) 23 return connector
Inherited Members
class
EndpointStageSerializer.Meta:
25 class Meta: 26 model = EndpointStage 27 fields = StageSerializer.Meta.fields + [ 28 "connector", 29 "connector_obj", 30 "mode", 31 ]
model =
<class 'authentik.endpoints.models.EndpointStage'>
class
EndpointStageViewSet(authentik.core.api.used_by.UsedByMixin, rest_framework.viewsets.ModelViewSet):
34class EndpointStageViewSet(UsedByMixin, ModelViewSet): 35 """EndpointStage Viewset""" 36 37 queryset = EndpointStage.objects.all() 38 serializer_class = EndpointStageSerializer 39 filterset_fields = [ 40 "name", 41 ] 42 search_fields = ["name"] 43 ordering = ["name"]
EndpointStage Viewset
serializer_class =
<class 'EndpointStageSerializer'>