blueprints: fix check for file path not being run on worker (#5703)
This commit is contained in:
parent
8029a13be1
commit
2cd68dfa87
|
@ -11,7 +11,7 @@ from rest_framework.serializers import ListSerializer, ModelSerializer
|
||||||
from rest_framework.viewsets import ModelViewSet
|
from rest_framework.viewsets import ModelViewSet
|
||||||
|
|
||||||
from authentik.api.decorators import permission_required
|
from authentik.api.decorators import permission_required
|
||||||
from authentik.blueprints.models import BlueprintInstance, BlueprintRetrievalFailed
|
from authentik.blueprints.models import BlueprintInstance
|
||||||
from authentik.blueprints.v1.importer import Importer
|
from authentik.blueprints.v1.importer import Importer
|
||||||
from authentik.blueprints.v1.tasks import apply_blueprint, blueprints_find_dict
|
from authentik.blueprints.v1.tasks import apply_blueprint, blueprints_find_dict
|
||||||
from authentik.core.api.used_by import UsedByMixin
|
from authentik.core.api.used_by import UsedByMixin
|
||||||
|
@ -35,11 +35,12 @@ class BlueprintInstanceSerializer(ModelSerializer):
|
||||||
"""Info about a single blueprint instance file"""
|
"""Info about a single blueprint instance file"""
|
||||||
|
|
||||||
def validate_path(self, path: str) -> str:
|
def validate_path(self, path: str) -> str:
|
||||||
"""Ensure the path specified is retrievable"""
|
"""Ensure the path (if set) specified is retrievable"""
|
||||||
try:
|
if path == "":
|
||||||
BlueprintInstance(path=path).retrieve()
|
return path
|
||||||
except BlueprintRetrievalFailed as exc:
|
files: list[dict] = blueprints_find_dict.delay().get()
|
||||||
raise ValidationError(exc) from exc
|
if path not in [file["path"] for file in files]:
|
||||||
|
raise ValidationError(_("Blueprint file does not exist"))
|
||||||
return path
|
return path
|
||||||
|
|
||||||
def validate_content(self, content: str) -> str:
|
def validate_content(self, content: str) -> str:
|
||||||
|
|
Reference in a new issue