providers/proxy: make outpost API readonly

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2021-04-11 13:31:15 +02:00
parent 5627848fad
commit cb048764f4
2 changed files with 7 additions and 112 deletions

View File

@ -2,7 +2,7 @@
from drf_yasg.utils import swagger_serializer_method from drf_yasg.utils import swagger_serializer_method
from rest_framework.fields import CharField, ListField, SerializerMethodField from rest_framework.fields import CharField, ListField, SerializerMethodField
from rest_framework.serializers import ModelSerializer from rest_framework.serializers import ModelSerializer
from rest_framework.viewsets import ModelViewSet from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
from authentik.core.api.providers import ProviderSerializer from authentik.core.api.providers import ProviderSerializer
from authentik.core.api.utils import PassiveSerializer from authentik.core.api.utils import PassiveSerializer
@ -68,16 +68,6 @@ class ProxyOutpostConfigSerializer(ModelSerializer):
oidc_configuration = SerializerMethodField() oidc_configuration = SerializerMethodField()
def create(self, validated_data):
instance: ProxyProvider = super().create(validated_data)
instance.set_oauth_defaults()
instance.save()
return instance
def update(self, instance: ProxyProvider, validated_data):
instance.set_oauth_defaults()
return super().update(instance, validated_data)
class Meta: class Meta:
model = ProxyProvider model = ProxyProvider
@ -104,9 +94,14 @@ class ProxyOutpostConfigSerializer(ModelSerializer):
return ProviderInfoView(request=self.context["request"]._request).get_info(obj) return ProviderInfoView(request=self.context["request"]._request).get_info(obj)
class ProxyOutpostConfigViewSet(ModelViewSet): class ProxyOutpostConfigViewSet(ReadOnlyModelViewSet):
"""ProxyProvider Viewset""" """ProxyProvider Viewset"""
queryset = ProxyProvider.objects.filter(application__isnull=False) queryset = ProxyProvider.objects.filter(application__isnull=False)
serializer_class = ProxyOutpostConfigSerializer serializer_class = ProxyOutpostConfigSerializer
ordering = ["name"] ordering = ["name"]
def get_queryset(self):
qs = super().get_queryset()
print(qs)
return qs

View File

@ -4730,30 +4730,6 @@ paths:
$ref: '#/definitions/GenericError' $ref: '#/definitions/GenericError'
tags: tags:
- outposts - outposts
post:
operationId: outposts_proxy_create
description: ProxyProvider Viewset
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/ProxyOutpostConfig'
responses:
'201':
description: ''
schema:
$ref: '#/definitions/ProxyOutpostConfig'
'400':
description: Invalid input.
schema:
$ref: '#/definitions/ValidationError'
'403':
description: Authentication credentials were invalid, absent or insufficient.
schema:
$ref: '#/definitions/GenericError'
tags:
- outposts
parameters: [] parameters: []
/outposts/proxy/{id}/: /outposts/proxy/{id}/:
get: get:
@ -4776,82 +4752,6 @@ paths:
$ref: '#/definitions/APIException' $ref: '#/definitions/APIException'
tags: tags:
- outposts - outposts
put:
operationId: outposts_proxy_update
description: ProxyProvider Viewset
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/ProxyOutpostConfig'
responses:
'200':
description: ''
schema:
$ref: '#/definitions/ProxyOutpostConfig'
'400':
description: Invalid input.
schema:
$ref: '#/definitions/ValidationError'
'403':
description: Authentication credentials were invalid, absent or insufficient.
schema:
$ref: '#/definitions/GenericError'
'404':
description: Object does not exist or caller has insufficient permissions
to access it.
schema:
$ref: '#/definitions/APIException'
tags:
- outposts
patch:
operationId: outposts_proxy_partial_update
description: ProxyProvider Viewset
parameters:
- name: data
in: body
required: true
schema:
$ref: '#/definitions/ProxyOutpostConfig'
responses:
'200':
description: ''
schema:
$ref: '#/definitions/ProxyOutpostConfig'
'400':
description: Invalid input.
schema:
$ref: '#/definitions/ValidationError'
'403':
description: Authentication credentials were invalid, absent or insufficient.
schema:
$ref: '#/definitions/GenericError'
'404':
description: Object does not exist or caller has insufficient permissions
to access it.
schema:
$ref: '#/definitions/APIException'
tags:
- outposts
delete:
operationId: outposts_proxy_delete
description: ProxyProvider Viewset
parameters: []
responses:
'204':
description: ''
'403':
description: Authentication credentials were invalid, absent or insufficient.
schema:
$ref: '#/definitions/GenericError'
'404':
description: Object does not exist or caller has insufficient permissions
to access it.
schema:
$ref: '#/definitions/APIException'
tags:
- outposts
parameters: parameters:
- name: id - name: id
in: path in: path