import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { docLink } from "@goauthentik/common/global"; import "@goauthentik/elements/CodeMirror"; import { CodeMirrorMode } from "@goauthentik/elements/CodeMirror"; import "@goauthentik/elements/forms/FormGroup"; import "@goauthentik/elements/forms/HorizontalFormElement"; import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; import "@goauthentik/elements/forms/Radio"; import type { RadioOption } from "@goauthentik/elements/forms/Radio"; 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 { PropertymappingsApi, RACPropertyMapping } from "@goauthentik/api"; export const staticSettingOptions: RadioOption[] = [ { label: msg("Unconfigured"), value: undefined, default: true, description: html`${msg("This option will not be changed by this mapping.")}`, }, { label: msg("Enabled"), value: "true", }, { label: msg("Disabled"), value: "false", }, ]; @customElement("ak-property-mapping-rac-form") export class PropertyMappingLDAPForm extends ModelForm { loadInstance(pk: string): Promise { return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsRacRetrieve({ pmUuid: pk, }); } getSuccessMessage(): string { if (this.instance) { return msg("Successfully updated mapping."); } else { return msg("Successfully created mapping."); } } async send(data: RACPropertyMapping): Promise { if (this.instance) { return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsRacUpdate({ pmUuid: this.instance.pk, rACPropertyMappingRequest: data, }); } else { return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsRacCreate({ rACPropertyMappingRequest: data, }); } } renderForm(): TemplateResult { return html` ${msg("General settings")}
${msg("RDP settings")}
${msg("Advanced settings")} `; } } declare global { interface HTMLElementTagNameMap { "ak-property-mapping-rac-form": PropertyMappingLDAPForm; } }