*: make all PropertyMappings filterable by multiple managed attributes

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2021-08-08 16:06:44 +02:00
parent 16f0f89a9d
commit ccfc1dbcc2
4 changed files with 72 additions and 6 deletions

View File

@ -1,4 +1,6 @@
"""OAuth2Provider API Views"""
from django_filters.filters import AllValuesMultipleFilter
from django_filters.filterset import FilterSet
from rest_framework.viewsets import ModelViewSet
from authentik.core.api.propertymappings import PropertyMappingSerializer
@ -18,10 +20,20 @@ class ScopeMappingSerializer(PropertyMappingSerializer):
]
class ScopeMappingFilter(FilterSet):
"""Filter for ScopeMapping"""
managed = AllValuesMultipleFilter(field_name="managed")
class Meta:
model = ScopeMapping
fields = ["scope_name", "name", "managed"]
class ScopeMappingViewSet(UsedByMixin, ModelViewSet):
"""ScopeMapping Viewset"""
queryset = ScopeMapping.objects.all()
serializer_class = ScopeMappingSerializer
filterset_fields = ["scope_name", "name", "managed"]
filterset_class = ScopeMappingFilter
ordering = ["scope_name", "name"]

View File

@ -6,6 +6,8 @@ from django.http.response import Http404, HttpResponse
from django.shortcuts import get_object_or_404
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from django_filters.filters import AllValuesMultipleFilter
from django_filters.filterset import FilterSet
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import OpenApiParameter, OpenApiResponse, extend_schema
from rest_framework.decorators import action
@ -180,10 +182,20 @@ class SAMLPropertyMappingSerializer(PropertyMappingSerializer):
]
class SAMLPropertyMappingFilter(FilterSet):
"""Filter for SAMLPropertyMapping"""
managed = AllValuesMultipleFilter(field_name="managed")
class Meta:
model = SAMLPropertyMapping
fields = "__all__"
class SAMLPropertyMappingViewSet(UsedByMixin, ModelViewSet):
"""SAMLPropertyMapping Viewset"""
queryset = SAMLPropertyMapping.objects.all()
serializer_class = SAMLPropertyMappingSerializer
filterset_fields = "__all__"
filterset_class = SAMLPropertyMappingFilter
ordering = ["name"]

View File

@ -1,6 +1,8 @@
"""Source API Views"""
from django.http.response import Http404
from django.utils.text import slugify
from django_filters.filters import AllValuesMultipleFilter
from django_filters.filterset import FilterSet
from drf_spectacular.utils import OpenApiResponse, extend_schema
from rest_framework.decorators import action
from rest_framework.request import Request
@ -101,10 +103,20 @@ class LDAPPropertyMappingSerializer(PropertyMappingSerializer):
]
class LDAPPropertyMappingFilter(FilterSet):
"""Filter for LDAPPropertyMapping"""
managed = AllValuesMultipleFilter(field_name="managed")
class Meta:
model = LDAPPropertyMapping
fields = "__all__"
class LDAPPropertyMappingViewSet(UsedByMixin, ModelViewSet):
"""LDAP PropertyMapping Viewset"""
queryset = LDAPPropertyMapping.objects.all()
serializer_class = LDAPPropertyMappingSerializer
filterset_fields = "__all__"
filterset_class = LDAPPropertyMappingFilter
ordering = ["name"]

View File

@ -9874,7 +9874,17 @@ paths:
- in: query
name: managed
schema:
type: string
type: array
items:
type: string
nullable: true
title: Managed by authentik
description: Objects which are managed by authentik. These objects are created
and updated automatically. This is flag only indicates that an object can
be overwritten by migrations. You can still modify the objects via the API,
but expect changes to be overwritten in a later update.
explode: true
style: form
- in: query
name: name
schema:
@ -10133,7 +10143,17 @@ paths:
- in: query
name: managed
schema:
type: string
type: array
items:
type: string
nullable: true
title: Managed by authentik
description: Objects which are managed by authentik. These objects are created
and updated automatically. This is flag only indicates that an object can
be overwritten by migrations. You can still modify the objects via the API,
but expect changes to be overwritten in a later update.
explode: true
style: form
- in: query
name: name
schema:
@ -10384,7 +10404,17 @@ paths:
- in: query
name: managed
schema:
type: string
type: array
items:
type: string
nullable: true
title: Managed by authentik
description: Objects which are managed by authentik. These objects are created
and updated automatically. This is flag only indicates that an object can
be overwritten by migrations. You can still modify the objects via the API,
but expect changes to be overwritten in a later update.
explode: true
style: form
- in: query
name: name
schema: