import { BasePolicyForm } from "@goauthentik/admin/policies/BasePolicyForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import "@goauthentik/elements/forms/FormGroup"; import "@goauthentik/elements/forms/HorizontalFormElement"; import { msg } from "@lit/localize"; import { TemplateResult, html } from "lit"; import { customElement } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; import { PasswordExpiryPolicy, PoliciesApi } from "@goauthentik/api"; @customElement("ak-policy-password-expiry-form") export class PasswordExpiryPolicyForm extends BasePolicyForm { loadInstance(pk: string): Promise { return new PoliciesApi(DEFAULT_CONFIG).policiesPasswordExpiryRetrieve({ policyUuid: pk, }); } async send(data: PasswordExpiryPolicy): Promise { if (this.instance) { return new PoliciesApi(DEFAULT_CONFIG).policiesPasswordExpiryUpdate({ policyUuid: this.instance.pk || "", passwordExpiryPolicyRequest: data, }); } else { return new PoliciesApi(DEFAULT_CONFIG).policiesPasswordExpiryCreate({ passwordExpiryPolicyRequest: data, }); } } renderForm(): TemplateResult { return html` ${msg( "Checks if the request's user's password has been changed in the last x days, and denys based on settings.", )}

${msg( "When this option is enabled, all executions of this policy will be logged. By default, only execution errors are logged.", )}

${msg("Policy-specific settings")}
`; } } declare global { interface HTMLElementTagNameMap { "ak-policy-password-expiry-form": PasswordExpiryPolicyForm; } }