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.")}
-
-
`;
}
}