import "@goauthentik/admin/common/ak-crypto-certificate-search"; import "@goauthentik/admin/common/ak-flow-search/ak-branded-flow-search"; import "@goauthentik/admin/common/ak-flow-search/ak-flow-search"; import "@goauthentik/components/ak-number-input"; import "@goauthentik/components/ak-radio-input"; import "@goauthentik/components/ak-text-input"; import "@goauthentik/components/ak-textarea-input"; import "@goauthentik/elements/ak-dual-select/ak-dual-select-dynamic-selected-provider.js"; import "@goauthentik/elements/ak-dual-select/ak-dual-select-provider.js"; import "@goauthentik/elements/forms/FormGroup"; import "@goauthentik/elements/forms/HorizontalFormElement"; import "@goauthentik/elements/forms/Radio"; import "@goauthentik/elements/forms/SearchSelect"; import "@goauthentik/elements/utils/TimeDeltaHelp"; import { msg } from "@lit/localize"; import { html, nothing } from "lit"; import { ifDefined } from "lit/directives/if-defined.js"; import { CurrentBrand, FlowsInstancesListDesignationEnum, LDAPProvider, ValidationError, } from "@goauthentik/api"; import { bindModeOptions, cryptoCertificateHelp, gidStartNumberHelp, mfaSupportHelp, searchModeOptions, tlsServerNameHelp, uidStartNumberHelp, } from "./LDAPOptionsAndHelp.js"; // All Provider objects have an Authorization flow, but not all providers have an Authentication // flow. LDAP needs only one field, but it is not an Authorization field, it is an Authentication // field. So, yeah, we're using the authorization field to store the authentication information, // which is why the ak-branded-flow-search call down there looks so weird-- we're looking up // Authentication flows, but we're storing them in the Authorization field of the target Provider. export function renderForm( provider?: Partial, errors: ValidationError = {}, brand?: CurrentBrand, ) { return html` ${msg("Flow settings")}

${msg("Flow used for users to authenticate.")}

${msg("Flow used for unbinding users.")}

${msg("Protocol settings")}

${cryptoCertificateHelp}

`; }