 2128e7f45f
			
		
	
	2128e7f45f
	
	
	
		
			
			* move RAC to open source * move web out of enterprise Signed-off-by: Jens Langhammer <jens@goauthentik.io> * remove enterprise license requirements from RAC * format Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io> Co-authored-by: Jens Langhammer <jens@goauthentik.io>
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """RAC Provider API Views"""
 | |
| 
 | |
| from django_filters.filters import AllValuesMultipleFilter
 | |
| from django_filters.filterset import FilterSet
 | |
| from drf_spectacular.types import OpenApiTypes
 | |
| from drf_spectacular.utils import extend_schema_field
 | |
| from rest_framework.fields import CharField
 | |
| from rest_framework.viewsets import ModelViewSet
 | |
| 
 | |
| from authentik.core.api.property_mappings import PropertyMappingSerializer
 | |
| from authentik.core.api.used_by import UsedByMixin
 | |
| from authentik.core.api.utils import JSONDictField
 | |
| from authentik.providers.rac.models import RACPropertyMapping
 | |
| 
 | |
| 
 | |
| class RACPropertyMappingSerializer(PropertyMappingSerializer):
 | |
|     """RACPropertyMapping Serializer"""
 | |
| 
 | |
|     static_settings = JSONDictField()
 | |
|     expression = CharField(allow_blank=True, required=False)
 | |
| 
 | |
|     def validate_expression(self, expression: str) -> str:
 | |
|         """Test Syntax"""
 | |
|         if expression == "":
 | |
|             return expression
 | |
|         return super().validate_expression(expression)
 | |
| 
 | |
|     class Meta:
 | |
|         model = RACPropertyMapping
 | |
|         fields = PropertyMappingSerializer.Meta.fields + ["static_settings"]
 | |
| 
 | |
| 
 | |
| class RACPropertyMappingFilter(FilterSet):
 | |
|     """Filter for RACPropertyMapping"""
 | |
| 
 | |
|     managed = extend_schema_field(OpenApiTypes.STR)(AllValuesMultipleFilter(field_name="managed"))
 | |
| 
 | |
|     class Meta:
 | |
|         model = RACPropertyMapping
 | |
|         fields = ["name", "managed"]
 | |
| 
 | |
| 
 | |
| class RACPropertyMappingViewSet(UsedByMixin, ModelViewSet):
 | |
|     """RACPropertyMapping Viewset"""
 | |
| 
 | |
|     queryset = RACPropertyMapping.objects.all()
 | |
|     serializer_class = RACPropertyMappingSerializer
 | |
|     search_fields = ["name"]
 | |
|     ordering = ["name"]
 | |
|     filterset_class = RACPropertyMappingFilter
 |