providers/saml: add title attribute to autosubmit stage and render correctly

Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
Jens Langhammer 2022-05-14 00:08:14 +02:00
parent 8ba45a5f6a
commit ddd785898b
7 changed files with 875 additions and 1019 deletions

View File

@ -4,6 +4,7 @@ from django.http import HttpRequest, HttpResponse
from django.http.response import HttpResponseBadRequest
from django.shortcuts import get_object_or_404, redirect
from django.utils.http import urlencode
from django.utils.translation import gettext as _
from rest_framework.fields import CharField, DictField
from structlog.stdlib import get_logger
@ -18,6 +19,7 @@ from authentik.providers.saml.processors.assertion import AssertionProcessor
from authentik.providers.saml.processors.request_parser import AuthNRequest
from authentik.providers.saml.utils.encoding import deflate_and_base64_encode, nice64
from authentik.sources.saml.exceptions import SAMLException
from authentik.sources.saml.views import PLAN_CONTEXT_TITLE
LOGGER = get_logger()
URL_VALIDATOR = URLValidator(schemes=("http", "https"))
@ -35,6 +37,7 @@ class AutosubmitChallenge(Challenge):
url = CharField()
attrs = DictField(child=CharField())
title = CharField(required=False)
component = CharField(default="ak-stage-autosubmit")
@ -88,7 +91,12 @@ class SAMLFlowFinalView(ChallengeStageView):
**{
"type": ChallengeTypes.NATIVE.value,
"component": "ak-stage-autosubmit",
"title": "Redirecting to %(app)s..." % {"app": application.name},
"title": (
self.executor.plan.context.get(
PLAN_CONTEXT_TITLE,
_("Redirecting to %(app)s..." % {"app": application.name}),
)
),
"url": provider.acs_url,
"attrs": form_attrs,
},

View File

@ -19342,10 +19342,10 @@ components:
type: string
lat:
type: number
format: float
format: double
long:
type: number
format: float
format: double
city:
type: string
required:
@ -20067,6 +20067,8 @@ components:
type: object
additionalProperties:
type: string
title:
type: string
required:
- attrs
- type
@ -29234,7 +29236,7 @@ components:
type: string
token_validity:
type: number
format: float
format: double
nullable: true
readOnly: true
scopes_to_request:

View File

@ -35,8 +35,12 @@ export class AutosubmitStage extends BaseStage<
if (!this.challenge) {
return html`<ak-empty-state ?loading="${true}" header=${t`Loading`}> </ak-empty-state>`;
}
let title = this.challenge.flowInfo?.title;
if (this.challenge.title && this.challenge.title !== "") {
title = this.challenge.title;
}
return html`<header class="pf-c-login__main-header">
<h1 class="pf-c-title pf-m-3xl">${this.challenge.flowInfo?.title}</h1>
<h1 class="pf-c-title pf-m-3xl">${title}</h1>
</header>
<div class="pf-c-login__main-body">
<form class="pf-c-form" action="${this.challenge.url}" method="POST">

File diff suppressed because it is too large Load Diff