import { CoreApi, IntentEnum, Token } from "@goauthentik/api"; import { t } from "@lingui/macro"; import { customElement } from "lit-element"; import { html, TemplateResult } from "lit-html"; import { DEFAULT_CONFIG } from "../../api/Config"; import "../../elements/forms/HorizontalFormElement"; import "../../elements/forms/FormGroup"; import { dateTimeLocal, first } from "../../utils"; import { ModelForm } from "../../elements/forms/ModelForm"; @customElement("ak-token-form") export class TokenForm extends ModelForm { loadInstance(pk: string): Promise { return new CoreApi(DEFAULT_CONFIG).coreTokensRetrieve({ identifier: pk, }); } getSuccessMessage(): string { if (this.instance) { return t`Successfully updated token.`; } else { return t`Successfully created token.`; } } send = (data: Token): Promise => { if (this.instance?.identifier) { return new CoreApi(DEFAULT_CONFIG).coreTokensUpdate({ identifier: this.instance.identifier, tokenRequest: data, }); } else { return new CoreApi(DEFAULT_CONFIG).coreTokensCreate({ tokenRequest: data, }); } }; renderForm(): TemplateResult { return html`

${t`Unique identifier the token is referenced by.`}

${t`If this is selected, the token will expire. Upon expiration, the token will be rotated.`}

`; } }