*: cleanup api schema warnings
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		| @ -4,14 +4,9 @@ from django.db.models import QuerySet | ||||
| from django.http.response import HttpResponseBadRequest | ||||
| from django.shortcuts import get_object_or_404 | ||||
| from drf_spectacular.types import OpenApiTypes | ||||
| from drf_spectacular.utils import ( | ||||
|     OpenApiParameter, | ||||
|     OpenApiResponse, | ||||
|     extend_schema, | ||||
|     inline_serializer, | ||||
| ) | ||||
| from drf_spectacular.utils import OpenApiParameter, OpenApiResponse, extend_schema | ||||
| from rest_framework.decorators import action | ||||
| from rest_framework.fields import BooleanField, CharField, FileField, ReadOnlyField | ||||
| from rest_framework.fields import ReadOnlyField | ||||
| from rest_framework.parsers import MultiPartParser | ||||
| from rest_framework.request import Request | ||||
| from rest_framework.response import Response | ||||
| @ -24,6 +19,7 @@ from authentik.admin.api.metrics import CoordinateSerializer, get_events_per_1h | ||||
| from authentik.api.decorators import permission_required | ||||
| from authentik.core.api.providers import ProviderSerializer | ||||
| from authentik.core.api.used_by import UsedByMixin | ||||
| from authentik.core.api.utils import FilePathSerializer, FileUploadSerializer | ||||
| from authentik.core.models import Application, User | ||||
| from authentik.events.models import EventAction | ||||
| from authentik.policies.api.exec import PolicyTestResultSerializer | ||||
| @ -180,13 +176,7 @@ class ApplicationViewSet(UsedByMixin, ModelViewSet): | ||||
|     @permission_required("authentik_core.change_application") | ||||
|     @extend_schema( | ||||
|         request={ | ||||
|             "multipart/form-data": inline_serializer( | ||||
|                 "SetIcon", | ||||
|                 fields={ | ||||
|                     "file": FileField(required=False), | ||||
|                     "clear": BooleanField(default=False), | ||||
|                 }, | ||||
|             ) | ||||
|             "multipart/form-data": FileUploadSerializer, | ||||
|         }, | ||||
|         responses={ | ||||
|             200: OpenApiResponse(description="Success"), | ||||
| @ -218,7 +208,7 @@ class ApplicationViewSet(UsedByMixin, ModelViewSet): | ||||
|  | ||||
|     @permission_required("authentik_core.change_application") | ||||
|     @extend_schema( | ||||
|         request=inline_serializer("SetIconURL", fields={"url": CharField()}), | ||||
|         request=FilePathSerializer, | ||||
|         responses={ | ||||
|             200: OpenApiResponse(description="Success"), | ||||
|             400: OpenApiResponse(description="Bad request"), | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| from typing import Any | ||||
|  | ||||
| from django.db.models import Model | ||||
| from rest_framework.fields import CharField, IntegerField | ||||
| from rest_framework.fields import BooleanField, CharField, FileField, IntegerField | ||||
| from rest_framework.serializers import Serializer, SerializerMethodField, ValidationError | ||||
|  | ||||
|  | ||||
| @ -22,8 +22,18 @@ class PassiveSerializer(Serializer): | ||||
|     def update(self, instance: Model, validated_data: dict) -> Model:  # pragma: no cover | ||||
|         return Model() | ||||
|  | ||||
|     class Meta: | ||||
|         model = Model | ||||
|  | ||||
| class FileUploadSerializer(PassiveSerializer): | ||||
|     """Serializer to upload file""" | ||||
|  | ||||
|     file = FileField(required=False) | ||||
|     clear = BooleanField(default=False) | ||||
|  | ||||
|  | ||||
| class FilePathSerializer(PassiveSerializer): | ||||
|     """Serializer to upload file""" | ||||
|  | ||||
|     url = CharField() | ||||
|  | ||||
|  | ||||
| class MetaNameSerializer(PassiveSerializer): | ||||
|  | ||||
| @ -7,10 +7,10 @@ from django.http.response import HttpResponseBadRequest, JsonResponse | ||||
| from django.urls import reverse | ||||
| from django.utils.translation import gettext as _ | ||||
| from drf_spectacular.types import OpenApiTypes | ||||
| from drf_spectacular.utils import OpenApiResponse, extend_schema, inline_serializer | ||||
| from drf_spectacular.utils import OpenApiResponse, extend_schema | ||||
| from guardian.shortcuts import get_objects_for_user | ||||
| from rest_framework.decorators import action | ||||
| from rest_framework.fields import BooleanField, FileField, ReadOnlyField | ||||
| from rest_framework.fields import ReadOnlyField | ||||
| from rest_framework.parsers import MultiPartParser | ||||
| from rest_framework.request import Request | ||||
| from rest_framework.response import Response | ||||
| @ -20,7 +20,12 @@ from structlog.stdlib import get_logger | ||||
|  | ||||
| from authentik.api.decorators import permission_required | ||||
| from authentik.core.api.used_by import UsedByMixin | ||||
| from authentik.core.api.utils import CacheSerializer, LinkSerializer | ||||
| from authentik.core.api.utils import ( | ||||
|     CacheSerializer, | ||||
|     FilePathSerializer, | ||||
|     FileUploadSerializer, | ||||
|     LinkSerializer, | ||||
| ) | ||||
| from authentik.flows.exceptions import FlowNonApplicableException | ||||
| from authentik.flows.models import Flow | ||||
| from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER, FlowPlanner, cache_key | ||||
| @ -147,7 +152,7 @@ class FlowViewSet(UsedByMixin, ModelViewSet): | ||||
|         ], | ||||
|     ) | ||||
|     @extend_schema( | ||||
|         request={"multipart/form-data": inline_serializer("SetIcon", fields={"file": FileField()})}, | ||||
|         request={"multipart/form-data": FileUploadSerializer}, | ||||
|         responses={ | ||||
|             204: OpenApiResponse(description="Successfully imported flow"), | ||||
|             400: OpenApiResponse(description="Bad request"), | ||||
| @ -259,13 +264,7 @@ class FlowViewSet(UsedByMixin, ModelViewSet): | ||||
|     @permission_required("authentik_flows.change_flow") | ||||
|     @extend_schema( | ||||
|         request={ | ||||
|             "multipart/form-data": inline_serializer( | ||||
|                 "SetIcon", | ||||
|                 fields={ | ||||
|                     "file": FileField(required=False), | ||||
|                     "clear": BooleanField(default=False), | ||||
|                 }, | ||||
|             ) | ||||
|             "multipart/form-data": FileUploadSerializer, | ||||
|         }, | ||||
|         responses={ | ||||
|             200: OpenApiResponse(description="Success"), | ||||
| @ -301,7 +300,7 @@ class FlowViewSet(UsedByMixin, ModelViewSet): | ||||
|  | ||||
|     @permission_required("authentik_core.change_application") | ||||
|     @extend_schema( | ||||
|         request=inline_serializer("SetIconURL", fields={"url": CharField()}), | ||||
|         request=FilePathSerializer, | ||||
|         responses={ | ||||
|             200: OpenApiResponse(description="Success"), | ||||
|             400: OpenApiResponse(description="Bad request"), | ||||
|  | ||||
| @ -3,7 +3,7 @@ from django.urls import reverse | ||||
| from django.utils.translation import gettext_lazy as _ | ||||
| from drf_spectacular.utils import OpenApiResponse, extend_schema | ||||
| from rest_framework.decorators import action | ||||
| from rest_framework.fields import ReadOnlyField | ||||
| from rest_framework.fields import CharField | ||||
| from rest_framework.generics import get_object_or_404 | ||||
| from rest_framework.request import Request | ||||
| from rest_framework.response import Response | ||||
| @ -49,12 +49,12 @@ class OAuth2ProviderSerializer(ProviderSerializer): | ||||
| class OAuth2ProviderSetupURLs(PassiveSerializer): | ||||
|     """OAuth2 Provider Metadata serializer""" | ||||
|  | ||||
|     issuer = ReadOnlyField() | ||||
|     authorize = ReadOnlyField() | ||||
|     token = ReadOnlyField() | ||||
|     user_info = ReadOnlyField() | ||||
|     provider_info = ReadOnlyField() | ||||
|     logout = ReadOnlyField() | ||||
|     issuer = CharField(read_only=True) | ||||
|     authorize = CharField(read_only=True) | ||||
|     token = CharField(read_only=True) | ||||
|     user_info = CharField(read_only=True) | ||||
|     provider_info = CharField(read_only=True) | ||||
|     logout = CharField(read_only=True) | ||||
|  | ||||
|  | ||||
| class OAuth2ProviderViewSet(UsedByMixin, ModelViewSet): | ||||
|  | ||||
| @ -11,7 +11,7 @@ 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 | ||||
| from rest_framework.fields import CharField, FileField, ReadOnlyField, SerializerMethodField | ||||
| from rest_framework.fields import CharField, FileField, SerializerMethodField | ||||
| from rest_framework.parsers import MultiPartParser | ||||
| from rest_framework.permissions import AllowAny | ||||
| from rest_framework.relations import SlugRelatedField | ||||
| @ -70,8 +70,8 @@ class SAMLProviderSerializer(ProviderSerializer): | ||||
| class SAMLMetadataSerializer(PassiveSerializer): | ||||
|     """SAML Provider Metadata serializer""" | ||||
|  | ||||
|     metadata = ReadOnlyField() | ||||
|     download_url = ReadOnlyField(required=False) | ||||
|     metadata = CharField(read_only=True) | ||||
|     download_url = CharField(read_only=True, required=False) | ||||
|  | ||||
|  | ||||
| class SAMLProviderImportSerializer(PassiveSerializer): | ||||
|  | ||||
							
								
								
									
										52
									
								
								schema.yml
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								schema.yml
									
									
									
									
									
								
							| @ -1710,7 +1710,7 @@ paths: | ||||
|         content: | ||||
|           multipart/form-data: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/SetIconRequest' | ||||
|               $ref: '#/components/schemas/FileUploadRequest' | ||||
|       security: | ||||
|       - authentik: [] | ||||
|       - cookieAuth: [] | ||||
| @ -1738,13 +1738,13 @@ paths: | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/SetIconURLRequest' | ||||
|               $ref: '#/components/schemas/FilePathRequest' | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/SetIconURLRequest' | ||||
|               $ref: '#/components/schemas/FilePathRequest' | ||||
|           multipart/form-data: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/SetIconURLRequest' | ||||
|               $ref: '#/components/schemas/FilePathRequest' | ||||
|         required: true | ||||
|       security: | ||||
|       - authentik: [] | ||||
| @ -5492,7 +5492,7 @@ paths: | ||||
|         content: | ||||
|           multipart/form-data: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/SetIconRequest' | ||||
|               $ref: '#/components/schemas/FileUploadRequest' | ||||
|       security: | ||||
|       - authentik: [] | ||||
|       - cookieAuth: [] | ||||
| @ -5520,13 +5520,13 @@ paths: | ||||
|         content: | ||||
|           application/json: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/SetIconURLRequest' | ||||
|               $ref: '#/components/schemas/FilePathRequest' | ||||
|           application/x-www-form-urlencoded: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/SetIconURLRequest' | ||||
|               $ref: '#/components/schemas/FilePathRequest' | ||||
|           multipart/form-data: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/SetIconURLRequest' | ||||
|               $ref: '#/components/schemas/FilePathRequest' | ||||
|         required: true | ||||
|       security: | ||||
|       - authentik: [] | ||||
| @ -5613,7 +5613,7 @@ paths: | ||||
|         content: | ||||
|           multipart/form-data: | ||||
|             schema: | ||||
|               $ref: '#/components/schemas/SetIconRequest' | ||||
|               $ref: '#/components/schemas/FileUploadRequest' | ||||
|       security: | ||||
|       - authentik: [] | ||||
|       - cookieAuth: [] | ||||
| @ -21583,6 +21583,24 @@ components: | ||||
|           type: string | ||||
|       required: | ||||
|       - expression | ||||
|     FilePathRequest: | ||||
|       type: object | ||||
|       description: Serializer to upload file | ||||
|       properties: | ||||
|         url: | ||||
|           type: string | ||||
|       required: | ||||
|       - url | ||||
|     FileUploadRequest: | ||||
|       type: object | ||||
|       description: Serializer to upload file | ||||
|       properties: | ||||
|         file: | ||||
|           type: string | ||||
|           format: binary | ||||
|         clear: | ||||
|           type: boolean | ||||
|           default: false | ||||
|     Flow: | ||||
|       type: object | ||||
|       description: Flow Serializer | ||||
| @ -29582,22 +29600,6 @@ components: | ||||
|           $ref: '#/components/schemas/UserSelf' | ||||
|       required: | ||||
|       - user | ||||
|     SetIconRequest: | ||||
|       type: object | ||||
|       properties: | ||||
|         file: | ||||
|           type: string | ||||
|           format: binary | ||||
|         clear: | ||||
|           type: boolean | ||||
|           default: false | ||||
|     SetIconURLRequest: | ||||
|       type: object | ||||
|       properties: | ||||
|         url: | ||||
|           type: string | ||||
|       required: | ||||
|       - url | ||||
|     SeverityEnum: | ||||
|       enum: | ||||
|       - notice | ||||
|  | ||||
| @ -76,7 +76,7 @@ export class ApplicationForm extends ModelForm<Application, string> { | ||||
|                 return writeOp.then((app) => { | ||||
|                     return new CoreApi(DEFAULT_CONFIG).coreApplicationsSetIconUrlCreate({ | ||||
|                         slug: app.slug, | ||||
|                         setIconURLRequest: { | ||||
|                         filePathRequest: { | ||||
|                             url: data.metaIcon || "", | ||||
|                         }, | ||||
|                     }); | ||||
|  | ||||
| @ -62,7 +62,7 @@ export class FlowForm extends ModelForm<Flow, string> { | ||||
|                 return writeOp.then((app) => { | ||||
|                     return new FlowsApi(DEFAULT_CONFIG).flowsInstancesSetBackgroundUrlCreate({ | ||||
|                         slug: app.slug, | ||||
|                         setIconURLRequest: { | ||||
|                         filePathRequest: { | ||||
|                             url: data.background || "", | ||||
|                         }, | ||||
|                     }); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer