flows: challenge error response in challenge format
This commit is contained in:
parent
33f67140f2
commit
548b1ead2f
|
@ -19,6 +19,7 @@ class ChallengeTypes(Enum):
|
||||||
native = "native"
|
native = "native"
|
||||||
shell = "shell"
|
shell = "shell"
|
||||||
redirect = "redirect"
|
redirect = "redirect"
|
||||||
|
error = "error"
|
||||||
|
|
||||||
|
|
||||||
class Challenge(Serializer):
|
class Challenge(Serializer):
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
"""authentik stage Base view"""
|
"""authentik stage Base view"""
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
from typing import Any, Type
|
from typing import Any
|
||||||
|
|
||||||
from django.http import HttpRequest
|
from django.http import HttpRequest
|
||||||
from django.http.request import QueryDict
|
from django.http.request import QueryDict
|
||||||
|
@ -10,7 +10,7 @@ from django.views.generic import TemplateView
|
||||||
|
|
||||||
from authentik.flows.challenge import (
|
from authentik.flows.challenge import (
|
||||||
Challenge,
|
Challenge,
|
||||||
ChallengeResponse,
|
ChallengeResponse, ChallengeTypes,
|
||||||
HttpChallengeResponse,
|
HttpChallengeResponse,
|
||||||
)
|
)
|
||||||
from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER
|
from authentik.flows.planner import PLAN_CONTEXT_PENDING_USER
|
||||||
|
@ -85,4 +85,13 @@ class ChallengeStageView(StageView):
|
||||||
|
|
||||||
def challenge_invalid(self, challenge: ChallengeResponse) -> HttpResponse:
|
def challenge_invalid(self, challenge: ChallengeResponse) -> HttpResponse:
|
||||||
"""Callback when the challenge has the incorrect format"""
|
"""Callback when the challenge has the incorrect format"""
|
||||||
return JsonResponse(challenge.errors)
|
challenge_response = Challenge(data={
|
||||||
|
"type": ChallengeTypes.error,
|
||||||
|
"args": {
|
||||||
|
"errors": challenge.errors
|
||||||
|
}
|
||||||
|
})
|
||||||
|
challenge_response.is_valid()
|
||||||
|
return HttpChallengeResponse(
|
||||||
|
challenge_response
|
||||||
|
)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
"""Identification stage logic"""
|
"""Identification stage logic"""
|
||||||
from typing import Optional, Union
|
from typing import Optional, Union
|
||||||
|
|
||||||
from django.contrib import messages
|
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
Reference in New Issue