stages/dummy: fix missing component
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
9bab708e6e
commit
1bc48d2bea
|
@ -25,7 +25,7 @@ class DummyStageView(ChallengeStageView):
|
||||||
return DummyChallenge(
|
return DummyChallenge(
|
||||||
data={
|
data={
|
||||||
"type": ChallengeTypes.native.value,
|
"type": ChallengeTypes.native.value,
|
||||||
"component": "",
|
"component": "ak-stage-dummy",
|
||||||
"title": self.executor.current_stage.name,
|
"title": self.executor.current_stage.name,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
@ -9,6 +9,7 @@ import PFList from "@patternfly/patternfly/components/List/list.css";
|
||||||
import AKGlobal from "../authentik.css";
|
import AKGlobal from "../authentik.css";
|
||||||
|
|
||||||
import { unsafeHTML } from "lit-html/directives/unsafe-html";
|
import { unsafeHTML } from "lit-html/directives/unsafe-html";
|
||||||
|
import "./access_denied/FlowAccessDenied";
|
||||||
import "./stages/authenticator_static/AuthenticatorStaticStage";
|
import "./stages/authenticator_static/AuthenticatorStaticStage";
|
||||||
import "./stages/authenticator_totp/AuthenticatorTOTPStage";
|
import "./stages/authenticator_totp/AuthenticatorTOTPStage";
|
||||||
import "./stages/authenticator_validate/AuthenticatorValidateStage";
|
import "./stages/authenticator_validate/AuthenticatorValidateStage";
|
||||||
|
@ -16,11 +17,11 @@ import "./stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage";
|
||||||
import "./stages/autosubmit/AutosubmitStage";
|
import "./stages/autosubmit/AutosubmitStage";
|
||||||
import "./stages/captcha/CaptchaStage";
|
import "./stages/captcha/CaptchaStage";
|
||||||
import "./stages/consent/ConsentStage";
|
import "./stages/consent/ConsentStage";
|
||||||
|
import "./stages/dummy/DummyStage";
|
||||||
import "./stages/email/EmailStage";
|
import "./stages/email/EmailStage";
|
||||||
import "./stages/identification/IdentificationStage";
|
import "./stages/identification/IdentificationStage";
|
||||||
import "./stages/password/PasswordStage";
|
import "./stages/password/PasswordStage";
|
||||||
import "./stages/prompt/PromptStage";
|
import "./stages/prompt/PromptStage";
|
||||||
import "./access_denied/FlowAccessDenied";
|
|
||||||
import { ShellChallenge, RedirectChallenge } from "../api/Flows";
|
import { ShellChallenge, RedirectChallenge } from "../api/Flows";
|
||||||
import { IdentificationChallenge } from "./stages/identification/IdentificationStage";
|
import { IdentificationChallenge } from "./stages/identification/IdentificationStage";
|
||||||
import { PasswordChallenge } from "./stages/password/PasswordStage";
|
import { PasswordChallenge } from "./stages/password/PasswordStage";
|
||||||
|
@ -193,6 +194,8 @@ export class FlowExecutor extends LitElement implements StageHost {
|
||||||
return html`<ak-stage-captcha .host=${this} .challenge=${this.challenge as CaptchaChallenge}></ak-stage-captcha>`;
|
return html`<ak-stage-captcha .host=${this} .challenge=${this.challenge as CaptchaChallenge}></ak-stage-captcha>`;
|
||||||
case "ak-stage-consent":
|
case "ak-stage-consent":
|
||||||
return html`<ak-stage-consent .host=${this} .challenge=${this.challenge as ConsentChallenge}></ak-stage-consent>`;
|
return html`<ak-stage-consent .host=${this} .challenge=${this.challenge as ConsentChallenge}></ak-stage-consent>`;
|
||||||
|
case "ak-stage-dummy":
|
||||||
|
return html`<ak-stage-dummy .host=${this} .challenge=${this.challenge as Challenge}></ak-stage-dummy>`;
|
||||||
case "ak-stage-email":
|
case "ak-stage-email":
|
||||||
return html`<ak-stage-email .host=${this} .challenge=${this.challenge as EmailChallenge}></ak-stage-email>`;
|
return html`<ak-stage-email .host=${this} .challenge=${this.challenge as EmailChallenge}></ak-stage-email>`;
|
||||||
case "ak-stage-autosubmit":
|
case "ak-stage-autosubmit":
|
||||||
|
|
|
@ -14,7 +14,6 @@ import "../../elements/EmptyState";
|
||||||
|
|
||||||
export interface AccessDeniedChallenge extends Challenge {
|
export interface AccessDeniedChallenge extends Challenge {
|
||||||
error_message?: string;
|
error_message?: string;
|
||||||
policy_result?: Record<string, unknown>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@customElement("ak-stage-access-denied")
|
@customElement("ak-stage-access-denied")
|
||||||
|
@ -49,27 +48,6 @@ export class FlowAccessDenied extends BaseStage {
|
||||||
${this.challenge?.error_message &&
|
${this.challenge?.error_message &&
|
||||||
html`<hr>
|
html`<hr>
|
||||||
<p>${this.challenge.error_message}</p>`}
|
<p>${this.challenge.error_message}</p>`}
|
||||||
${this.challenge.policy_result &&
|
|
||||||
html`<hr>
|
|
||||||
<em>
|
|
||||||
${gettext("Explanation:")}
|
|
||||||
</em>
|
|
||||||
<ul class="pf-c-list">
|
|
||||||
{% for source_result in policy_result.source_results %}
|
|
||||||
<li>
|
|
||||||
{% blocktrans with name=source_result.source_policy.name result=source_result.passing %}
|
|
||||||
Policy '{{ name }}' returned result '{{ result }}'
|
|
||||||
{% endblocktrans %}
|
|
||||||
{% if source_result.messages %}
|
|
||||||
<ul class="pf-c-list">
|
|
||||||
{% for message in source_result.messages %}
|
|
||||||
<li>{{ message }}</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
{% endif %}
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>`}
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
import { gettext } from "django";
|
||||||
|
import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
|
||||||
|
import { Challenge } from "../../../api/Flows";
|
||||||
|
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
|
||||||
|
import PFForm from "@patternfly/patternfly/components/Form/form.css";
|
||||||
|
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
|
||||||
|
import PFTitle from "@patternfly/patternfly/components/Title/title.css";
|
||||||
|
import PFButton from "@patternfly/patternfly/components/Button/button.css";
|
||||||
|
import PFBase from "@patternfly/patternfly/patternfly-base.css";
|
||||||
|
import AKGlobal from "../../../authentik.css";
|
||||||
|
import { BaseStage } from "../base";
|
||||||
|
import "../../../elements/EmptyState";
|
||||||
|
import "../../FormStatic";
|
||||||
|
|
||||||
|
@customElement("ak-stage-dummy")
|
||||||
|
export class DummyStage extends BaseStage {
|
||||||
|
|
||||||
|
@property({ attribute: false })
|
||||||
|
challenge?: Challenge;
|
||||||
|
|
||||||
|
static get styles(): CSSResult[] {
|
||||||
|
return [PFBase, PFLogin, PFForm, PFFormControl, PFTitle, PFButton, AKGlobal];
|
||||||
|
}
|
||||||
|
|
||||||
|
render(): TemplateResult {
|
||||||
|
if (!this.challenge) {
|
||||||
|
return html`<ak-empty-state
|
||||||
|
?loading="${true}"
|
||||||
|
header=${gettext("Loading")}>
|
||||||
|
</ak-empty-state>`;
|
||||||
|
}
|
||||||
|
return html`<header class="pf-c-login__main-header">
|
||||||
|
<h1 class="pf-c-title pf-m-3xl">
|
||||||
|
${this.challenge.title}
|
||||||
|
</h1>
|
||||||
|
</header>
|
||||||
|
<div class="pf-c-login__main-body">
|
||||||
|
<form class="pf-c-form" @submit=${(e: Event) => { this.submitForm(e); }}>
|
||||||
|
<div class="pf-c-form__group pf-m-action">
|
||||||
|
<button type="submit" class="pf-c-button pf-m-primary pf-m-block">
|
||||||
|
${gettext("Continue")}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<footer class="pf-c-login__main-footer">
|
||||||
|
<ul class="pf-c-login__main-footer-links">
|
||||||
|
</ul>
|
||||||
|
</footer>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in New Issue