From 9343e3495a67a782e793809aa3c78427d56f4594 Mon Sep 17 00:00:00 2001 From: Marc 'risson' Schmitt Date: Wed, 7 Aug 2024 21:05:56 +0200 Subject: [PATCH] web/admin: refactor property mappings forms (#10810) --- .../BasePropertyMappingForm.ts | 47 ++++++++++++++++++- .../PropertyMappingGoogleWorkspaceForm.ts | 37 --------------- .../PropertyMappingLDAPSourceForm.ts | 39 --------------- .../PropertyMappingMicrosoftEntraForm.ts | 37 --------------- .../PropertyMappingNotification.ts | 43 ----------------- .../PropertyMappingOAuthSourceForm.ts | 39 --------------- .../PropertyMappingRACForm.ts | 4 +- .../PropertyMappingRadiusForm.ts | 37 --------------- .../PropertyMappingSAMLForm.ts | 37 ++------------- .../PropertyMappingSAMLSourceForm.ts | 39 --------------- .../PropertyMappingSCIMForm.ts | 37 --------------- .../PropertyMappingSCIMSourceForm.ts | 39 --------------- .../PropertyMappingScopeForm.ts | 37 ++------------- 13 files changed, 54 insertions(+), 418 deletions(-) diff --git a/web/src/admin/property-mappings/BasePropertyMappingForm.ts b/web/src/admin/property-mappings/BasePropertyMappingForm.ts index 82981b9cf3..8fd8f18cc2 100644 --- a/web/src/admin/property-mappings/BasePropertyMappingForm.ts +++ b/web/src/admin/property-mappings/BasePropertyMappingForm.ts @@ -1,11 +1,56 @@ +import { docLink } from "@goauthentik/common/global"; +import { CodeMirrorMode } from "@goauthentik/elements/CodeMirror"; import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; import { msg } from "@lit/localize"; +import { TemplateResult, html } from "lit"; +import { ifDefined } from "lit/directives/if-defined.js"; + +interface PropertyMapping { + name: string; + expression: string; +} + +export abstract class BasePropertyMappingForm extends ModelForm< + T, + string +> { + docLink(): string { + return "/docs/property-mappings/expression?utm_source=authentik"; + } -export abstract class BasePropertyMappingForm extends ModelForm { getSuccessMessage(): string { return this.instance ? msg("Successfully updated mapping.") : msg("Successfully created mapping."); } + + renderExtraFields(): TemplateResult { + return html``; + } + + renderForm(): TemplateResult { + return html` + + + ${this.renderExtraFields()} + + + +

+ ${msg("Expression using Python.")} + + ${msg("See documentation for a list of all variables.")} + +

+
`; + } } diff --git a/web/src/admin/property-mappings/PropertyMappingGoogleWorkspaceForm.ts b/web/src/admin/property-mappings/PropertyMappingGoogleWorkspaceForm.ts index 37c943f88a..d1b3fd8f23 100644 --- a/web/src/admin/property-mappings/PropertyMappingGoogleWorkspaceForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingGoogleWorkspaceForm.ts @@ -1,14 +1,9 @@ import { BasePropertyMappingForm } from "@goauthentik/admin/property-mappings/BasePropertyMappingForm"; 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/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 { GoogleWorkspaceProviderMapping, PropertymappingsApi } from "@goauthentik/api"; @@ -38,38 +33,6 @@ export class PropertyMappingGoogleWorkspaceForm extends BasePropertyMappingForm< }); } } - - renderForm(): TemplateResult { - return html` - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

-
`; - } } declare global { diff --git a/web/src/admin/property-mappings/PropertyMappingLDAPSourceForm.ts b/web/src/admin/property-mappings/PropertyMappingLDAPSourceForm.ts index a8642aa196..066d3b5f9e 100644 --- a/web/src/admin/property-mappings/PropertyMappingLDAPSourceForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingLDAPSourceForm.ts @@ -1,14 +1,9 @@ import { BasePropertyMappingForm } from "@goauthentik/admin/property-mappings/BasePropertyMappingForm"; 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/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 { LDAPSourcePropertyMapping, PropertymappingsApi } from "@goauthentik/api"; @@ -32,40 +27,6 @@ export class PropertyMappingLDAPSourceForm extends BasePropertyMappingForm - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

-
`; - } } declare global { diff --git a/web/src/admin/property-mappings/PropertyMappingMicrosoftEntraForm.ts b/web/src/admin/property-mappings/PropertyMappingMicrosoftEntraForm.ts index bd63e1a768..cb735db601 100644 --- a/web/src/admin/property-mappings/PropertyMappingMicrosoftEntraForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingMicrosoftEntraForm.ts @@ -1,14 +1,9 @@ import { BasePropertyMappingForm } from "@goauthentik/admin/property-mappings/BasePropertyMappingForm"; 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/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 { MicrosoftEntraProviderMapping, PropertymappingsApi } from "@goauthentik/api"; @@ -38,38 +33,6 @@ export class PropertyMappingMicrosoftEntraForm extends BasePropertyMappingForm - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

-
`; - } } declare global { diff --git a/web/src/admin/property-mappings/PropertyMappingNotification.ts b/web/src/admin/property-mappings/PropertyMappingNotification.ts index 4bc5a7c6e7..e6cf237497 100644 --- a/web/src/admin/property-mappings/PropertyMappingNotification.ts +++ b/web/src/admin/property-mappings/PropertyMappingNotification.ts @@ -1,14 +1,9 @@ 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/HorizontalFormElement"; import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; -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 { NotificationWebhookMapping, PropertymappingsApi } from "@goauthentik/api"; @@ -20,12 +15,6 @@ export class PropertyMappingNotification extends ModelForm { if (this.instance) { return new PropertymappingsApi(DEFAULT_CONFIG).propertymappingsNotificationUpdate({ @@ -38,38 +27,6 @@ export class PropertyMappingNotification extends ModelForm - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

-
`; - } } declare global { diff --git a/web/src/admin/property-mappings/PropertyMappingOAuthSourceForm.ts b/web/src/admin/property-mappings/PropertyMappingOAuthSourceForm.ts index 1899b7d713..842dea8ccf 100644 --- a/web/src/admin/property-mappings/PropertyMappingOAuthSourceForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingOAuthSourceForm.ts @@ -1,14 +1,9 @@ import { BasePropertyMappingForm } from "@goauthentik/admin/property-mappings/BasePropertyMappingForm"; 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/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 { OAuthSourcePropertyMapping, PropertymappingsApi } from "@goauthentik/api"; @@ -32,40 +27,6 @@ export class PropertyMappingOAuthSourceForm extends BasePropertyMappingForm - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

-
`; - } } declare global { diff --git a/web/src/admin/property-mappings/PropertyMappingRACForm.ts b/web/src/admin/property-mappings/PropertyMappingRACForm.ts index 813e3b23b5..4bd6d0803c 100644 --- a/web/src/admin/property-mappings/PropertyMappingRACForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingRACForm.ts @@ -63,7 +63,7 @@ export class PropertyMappingRACForm extends ModelForm + - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

-
`; - } } declare global { diff --git a/web/src/admin/property-mappings/PropertyMappingSAMLForm.ts b/web/src/admin/property-mappings/PropertyMappingSAMLForm.ts index 74aeff34ed..08472dd1da 100644 --- a/web/src/admin/property-mappings/PropertyMappingSAMLForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingSAMLForm.ts @@ -1,8 +1,6 @@ import { BasePropertyMappingForm } from "@goauthentik/admin/property-mappings/BasePropertyMappingForm"; 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/HorizontalFormElement"; import { msg } from "@lit/localize"; @@ -33,18 +31,10 @@ export class PropertyMappingSAMLForm extends BasePropertyMappingForm - -
- ${msg("Optionally set the 'FriendlyName' value of the Assertion attribute.")}

-
- - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

`; } } diff --git a/web/src/admin/property-mappings/PropertyMappingSAMLSourceForm.ts b/web/src/admin/property-mappings/PropertyMappingSAMLSourceForm.ts index 9c01363fdb..ce14c0620d 100644 --- a/web/src/admin/property-mappings/PropertyMappingSAMLSourceForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingSAMLSourceForm.ts @@ -1,14 +1,9 @@ import { BasePropertyMappingForm } from "@goauthentik/admin/property-mappings/BasePropertyMappingForm"; 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/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 { PropertymappingsApi, SAMLSourcePropertyMapping } from "@goauthentik/api"; @@ -32,40 +27,6 @@ export class PropertyMappingSAMLSourceForm extends BasePropertyMappingForm - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

-
`; - } } declare global { diff --git a/web/src/admin/property-mappings/PropertyMappingSCIMForm.ts b/web/src/admin/property-mappings/PropertyMappingSCIMForm.ts index 56231f3189..8da172b9c4 100644 --- a/web/src/admin/property-mappings/PropertyMappingSCIMForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingSCIMForm.ts @@ -1,14 +1,9 @@ import { BasePropertyMappingForm } from "@goauthentik/admin/property-mappings/BasePropertyMappingForm"; 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/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 { PropertymappingsApi, SCIMMapping } from "@goauthentik/api"; @@ -32,38 +27,6 @@ export class PropertyMappingSCIMForm extends BasePropertyMappingForm - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

-
`; - } } declare global { diff --git a/web/src/admin/property-mappings/PropertyMappingSCIMSourceForm.ts b/web/src/admin/property-mappings/PropertyMappingSCIMSourceForm.ts index 7af0e13b2a..692aacb1ff 100644 --- a/web/src/admin/property-mappings/PropertyMappingSCIMSourceForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingSCIMSourceForm.ts @@ -1,14 +1,9 @@ import { BasePropertyMappingForm } from "@goauthentik/admin/property-mappings/BasePropertyMappingForm"; 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/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 { PropertymappingsApi, SCIMSourcePropertyMapping } from "@goauthentik/api"; @@ -32,40 +27,6 @@ export class PropertyMappingSCIMSourceForm extends BasePropertyMappingForm - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

-
`; - } } declare global { diff --git a/web/src/admin/property-mappings/PropertyMappingScopeForm.ts b/web/src/admin/property-mappings/PropertyMappingScopeForm.ts index 3ec642b0c4..9ba29d6cc5 100644 --- a/web/src/admin/property-mappings/PropertyMappingScopeForm.ts +++ b/web/src/admin/property-mappings/PropertyMappingScopeForm.ts @@ -1,8 +1,6 @@ import { BasePropertyMappingForm } from "@goauthentik/admin/property-mappings/BasePropertyMappingForm"; 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/HorizontalFormElement"; import { msg } from "@lit/localize"; @@ -33,18 +31,10 @@ export class PropertyMappingScopeForm extends BasePropertyMappingForm - - - - - - - -

- ${msg("Expression using Python.")} - - ${msg("See documentation for a list of all variables.")} - -

`; } }