diff --git a/web/src/pages/policies/event_matcher/EventMatcherPolicyForm.ts b/web/src/pages/policies/event_matcher/EventMatcherPolicyForm.ts index ccb86bda6f..2c12792051 100644 --- a/web/src/pages/policies/event_matcher/EventMatcherPolicyForm.ts +++ b/web/src/pages/policies/event_matcher/EventMatcherPolicyForm.ts @@ -1,31 +1,26 @@ import { AdminApi, EventMatcherPolicy, EventsApi, PoliciesApi } from "authentik-api"; import { t } from "@lingui/macro"; -import { customElement, property } from "lit-element"; +import { customElement } from "lit-element"; import { html, TemplateResult } from "lit-html"; import { DEFAULT_CONFIG } from "../../../api/Config"; -import { Form } from "../../../elements/forms/Form"; import { ifDefined } from "lit-html/directives/if-defined"; import "../../../elements/forms/HorizontalFormElement"; import "../../../elements/forms/FormGroup"; import { until } from "lit-html/directives/until"; import { first } from "../../../utils"; +import { ModelForm } from "../../../elements/forms/ModelForm"; @customElement("ak-policy-event-matcher-form") -export class EventMatcherPolicyForm extends Form { +export class EventMatcherPolicyForm extends ModelForm { - set policyUUID(value: string) { - new PoliciesApi(DEFAULT_CONFIG).policiesEventMatcherRead({ - policyUuid: value, - }).then(policy => { - this.policy = policy; + loadInstance(pk: string): Promise { + return new PoliciesApi(DEFAULT_CONFIG).policiesEventMatcherRead({ + policyUuid: pk, }); } - @property({attribute: false}) - policy?: EventMatcherPolicy; - getSuccessMessage(): string { - if (this.policy) { + if (this.instance) { return t`Successfully updated policy.`; } else { return t`Successfully created policy.`; @@ -33,9 +28,9 @@ export class EventMatcherPolicyForm extends Form { } send = (data: EventMatcherPolicy): Promise => { - if (this.policy) { + if (this.instance) { return new PoliciesApi(DEFAULT_CONFIG).policiesEventMatcherUpdate({ - policyUuid: this.policy.pk || "", + policyUuid: this.instance.pk || "", data: data }); } else { @@ -54,11 +49,11 @@ export class EventMatcherPolicyForm extends Form { label=${t`Name`} ?required=${true} name="name"> - +
- + @@ -76,10 +71,10 @@ export class EventMatcherPolicyForm extends Form { label=${t`Action`} name="action"> @@ -88,17 +83,17 @@ export class EventMatcherPolicyForm extends Form { - +

${t`Matches Event's Client IP (strict matching, for network matching use an Expression Policy.`}

diff --git a/web/src/pages/policies/expiry/ExpiryPolicyForm.ts b/web/src/pages/policies/expiry/ExpiryPolicyForm.ts index 4084b5d558..cfb404bb33 100644 --- a/web/src/pages/policies/expiry/ExpiryPolicyForm.ts +++ b/web/src/pages/policies/expiry/ExpiryPolicyForm.ts @@ -1,30 +1,25 @@ import { PasswordExpiryPolicy, PoliciesApi } from "authentik-api"; import { t } from "@lingui/macro"; -import { customElement, property } from "lit-element"; +import { customElement } from "lit-element"; import { html, TemplateResult } from "lit-html"; import { DEFAULT_CONFIG } from "../../../api/Config"; -import { Form } from "../../../elements/forms/Form"; import { ifDefined } from "lit-html/directives/if-defined"; import "../../../elements/forms/HorizontalFormElement"; import "../../../elements/forms/FormGroup"; import { first } from "../../../utils"; +import { ModelForm } from "../../../elements/forms/ModelForm"; @customElement("ak-policy-password-expiry-form") -export class PasswordExpiryPolicyForm extends Form { +export class PasswordExpiryPolicyForm extends ModelForm { - set policyUUID(value: string) { - new PoliciesApi(DEFAULT_CONFIG).policiesPasswordExpiryRead({ - policyUuid: value, - }).then(policy => { - this.policy = policy; + loadInstance(pk: string): Promise { + return new PoliciesApi(DEFAULT_CONFIG).policiesPasswordExpiryRead({ + policyUuid: pk, }); } - @property({attribute: false}) - policy?: PasswordExpiryPolicy; - getSuccessMessage(): string { - if (this.policy) { + if (this.instance) { return t`Successfully updated policy.`; } else { return t`Successfully created policy.`; @@ -32,9 +27,9 @@ export class PasswordExpiryPolicyForm extends Form { } send = (data: PasswordExpiryPolicy): Promise => { - if (this.policy) { + if (this.instance) { return new PoliciesApi(DEFAULT_CONFIG).policiesPasswordExpiryUpdate({ - policyUuid: this.policy.pk || "", + policyUuid: this.instance.pk || "", data: data }); } else { @@ -53,11 +48,11 @@ export class PasswordExpiryPolicyForm extends Form { label=${t`Name`} ?required=${true} name="name"> - +
- + @@ -75,11 +70,11 @@ export class PasswordExpiryPolicyForm extends Form { label=${t`Maximum age (in days)`} ?required=${true} name="days"> - +
- + diff --git a/web/src/pages/policies/expression/ExpressionPolicyForm.ts b/web/src/pages/policies/expression/ExpressionPolicyForm.ts index dcc047bdce..bb44eb97de 100644 --- a/web/src/pages/policies/expression/ExpressionPolicyForm.ts +++ b/web/src/pages/policies/expression/ExpressionPolicyForm.ts @@ -1,31 +1,26 @@ import { ExpressionPolicy, PoliciesApi } from "authentik-api"; import { t } from "@lingui/macro"; -import { customElement, property } from "lit-element"; +import { customElement } from "lit-element"; import { html, TemplateResult } from "lit-html"; import { DEFAULT_CONFIG } from "../../../api/Config"; -import { Form } from "../../../elements/forms/Form"; import { ifDefined } from "lit-html/directives/if-defined"; import "../../../elements/forms/HorizontalFormElement"; import "../../../elements/forms/FormGroup"; import "../../../elements/CodeMirror"; import { first } from "../../../utils"; +import { ModelForm } from "../../../elements/forms/ModelForm"; @customElement("ak-policy-expression-form") -export class ExpressionPolicyForm extends Form { +export class ExpressionPolicyForm extends ModelForm { - set policyUUID(value: string) { - new PoliciesApi(DEFAULT_CONFIG).policiesExpressionRead({ - policyUuid: value, - }).then(policy => { - this.policy = policy; + loadInstance(pk: string): Promise { + return new PoliciesApi(DEFAULT_CONFIG).policiesExpressionRead({ + policyUuid: pk, }); } - @property({attribute: false}) - policy?: ExpressionPolicy; - getSuccessMessage(): string { - if (this.policy) { + if (this.instance) { return t`Successfully updated policy.`; } else { return t`Successfully created policy.`; @@ -33,9 +28,9 @@ export class ExpressionPolicyForm extends Form { } send = (data: ExpressionPolicy): Promise => { - if (this.policy) { + if (this.instance) { return new PoliciesApi(DEFAULT_CONFIG).policiesExpressionUpdate({ - policyUuid: this.policy.pk || "", + policyUuid: this.instance.pk || "", data: data }); } else { @@ -54,11 +49,11 @@ export class ExpressionPolicyForm extends Form { label=${t`Name`} ?required=${true} name="name"> - +
- + @@ -76,7 +71,7 @@ export class ExpressionPolicyForm extends Form { label=${t`Expression`} ?required=${true} name="expression"> - +

${t`Expression using Python.`} diff --git a/web/src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts b/web/src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts index 79d06ae9ff..813ee70dca 100644 --- a/web/src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts +++ b/web/src/pages/policies/hibp/HaveIBeenPwnedPolicyForm.ts @@ -1,30 +1,25 @@ import { HaveIBeenPwendPolicy, PoliciesApi } from "authentik-api"; import { t } from "@lingui/macro"; -import { customElement, property } from "lit-element"; +import { customElement } from "lit-element"; import { html, TemplateResult } from "lit-html"; import { DEFAULT_CONFIG } from "../../../api/Config"; -import { Form } from "../../../elements/forms/Form"; import { ifDefined } from "lit-html/directives/if-defined"; import "../../../elements/forms/HorizontalFormElement"; import "../../../elements/forms/FormGroup"; import { first } from "../../../utils"; +import { ModelForm } from "../../../elements/forms/ModelForm"; @customElement("ak-policy-hibp-form") -export class HaveIBeenPwnedPolicyForm extends Form { +export class HaveIBeenPwnedPolicyForm extends ModelForm { - set policyUUID(value: string) { - new PoliciesApi(DEFAULT_CONFIG).policiesHaveibeenpwnedRead({ - policyUuid: value, - }).then(policy => { - this.policy = policy; + loadInstance(pk: string): Promise { + return new PoliciesApi(DEFAULT_CONFIG).policiesHaveibeenpwnedRead({ + policyUuid: pk, }); } - @property({attribute: false}) - policy?: HaveIBeenPwendPolicy; - getSuccessMessage(): string { - if (this.policy) { + if (this.instance) { return t`Successfully updated policy.`; } else { return t`Successfully created policy.`; @@ -32,9 +27,9 @@ export class HaveIBeenPwnedPolicyForm extends Form { } send = (data: HaveIBeenPwendPolicy): Promise => { - if (this.policy) { + if (this.instance) { return new PoliciesApi(DEFAULT_CONFIG).policiesHaveibeenpwnedUpdate({ - policyUuid: this.policy.pk || "", + policyUuid: this.instance.pk || "", data: data }); } else { @@ -54,11 +49,11 @@ export class HaveIBeenPwnedPolicyForm extends Form { label=${t`Name`} ?required=${true} name="name"> - +

- + @@ -76,14 +71,14 @@ export class HaveIBeenPwnedPolicyForm extends Form { label=${t`Password field`} ?required=${true} name="passwordField"> - +

${t`Field key to check, field keys defined in Prompt stages are available.`}

- +

${t`Allow up to N occurrences in the HIBP database.`}

diff --git a/web/src/pages/policies/password/PasswordPolicyForm.ts b/web/src/pages/policies/password/PasswordPolicyForm.ts index cc663ecdef..15ace51c0f 100644 --- a/web/src/pages/policies/password/PasswordPolicyForm.ts +++ b/web/src/pages/policies/password/PasswordPolicyForm.ts @@ -1,30 +1,25 @@ import { PasswordPolicy, PoliciesApi } from "authentik-api"; import { t } from "@lingui/macro"; -import { customElement, property } from "lit-element"; +import { customElement } from "lit-element"; import { html, TemplateResult } from "lit-html"; import { DEFAULT_CONFIG } from "../../../api/Config"; -import { Form } from "../../../elements/forms/Form"; import { ifDefined } from "lit-html/directives/if-defined"; import "../../../elements/forms/HorizontalFormElement"; import "../../../elements/forms/FormGroup"; import { first } from "../../../utils"; +import { ModelForm } from "../../../elements/forms/ModelForm"; @customElement("ak-policy-password-form") -export class PasswordPolicyForm extends Form { +export class PasswordPolicyForm extends ModelForm { - set policyUUID(value: string) { - new PoliciesApi(DEFAULT_CONFIG).policiesPasswordRead({ - policyUuid: value, - }).then(policy => { - this.policy = policy; + loadInstance(pk: string): Promise { + return new PoliciesApi(DEFAULT_CONFIG).policiesPasswordRead({ + policyUuid: pk, }); } - @property({attribute: false}) - policy?: PasswordPolicy; - getSuccessMessage(): string { - if (this.policy) { + if (this.instance) { return t`Successfully updated policy.`; } else { return t`Successfully created policy.`; @@ -32,9 +27,9 @@ export class PasswordPolicyForm extends Form { } send = (data: PasswordPolicy): Promise => { - if (this.policy) { + if (this.instance) { return new PoliciesApi(DEFAULT_CONFIG).policiesPasswordUpdate({ - policyUuid: this.policy.pk || "", + policyUuid: this.instance.pk || "", data: data }); } else { @@ -53,11 +48,11 @@ export class PasswordPolicyForm extends Form { label=${t`Name`} ?required=${true} name="name"> - +
- + @@ -75,7 +70,7 @@ export class PasswordPolicyForm extends Form { label=${t`Password field`} ?required=${true} name="passwordField"> - +

${t`Field key to check, field keys defined in Prompt stages are available.`}

@@ -83,31 +78,31 @@ export class PasswordPolicyForm extends Form { label=${t`Minimum length`} ?required=${true} name="lengthMin"> - + - + - + - + - +
@@ -120,7 +115,7 @@ export class PasswordPolicyForm extends Form { label=${t`Symbol charset`} ?required=${true} name="symbolCharset"> - ?@[]^_`{|}~ ")}" class="pf-c-form-control" required> + ?@[]^_`{|}~ ")}" class="pf-c-form-control" required>

${t`Characters which are considered as symbols.`}

diff --git a/web/src/pages/policies/reputation/ReputationPolicyForm.ts b/web/src/pages/policies/reputation/ReputationPolicyForm.ts index 4d14be0f94..1b606ba09a 100644 --- a/web/src/pages/policies/reputation/ReputationPolicyForm.ts +++ b/web/src/pages/policies/reputation/ReputationPolicyForm.ts @@ -1,30 +1,25 @@ import { ReputationPolicy, PoliciesApi } from "authentik-api"; import { t } from "@lingui/macro"; -import { customElement, property } from "lit-element"; +import { customElement } from "lit-element"; import { html, TemplateResult } from "lit-html"; import { DEFAULT_CONFIG } from "../../../api/Config"; -import { Form } from "../../../elements/forms/Form"; import { ifDefined } from "lit-html/directives/if-defined"; import "../../../elements/forms/HorizontalFormElement"; import "../../../elements/forms/FormGroup"; import { first } from "../../../utils"; +import { ModelForm } from "../../../elements/forms/ModelForm"; @customElement("ak-policy-reputation-form") -export class ReputationPolicyForm extends Form { +export class ReputationPolicyForm extends ModelForm { - set policyUUID(value: string) { - new PoliciesApi(DEFAULT_CONFIG).policiesReputationRead({ - policyUuid: value, - }).then(policy => { - this.policy = policy; + loadInstance(pk: string): Promise { + return new PoliciesApi(DEFAULT_CONFIG).policiesReputationRead({ + policyUuid: pk, }); } - @property({attribute: false}) - policy?: ReputationPolicy; - getSuccessMessage(): string { - if (this.policy) { + if (this.instance) { return t`Successfully updated policy.`; } else { return t`Successfully created policy.`; @@ -32,9 +27,9 @@ export class ReputationPolicyForm extends Form { } send = (data: ReputationPolicy): Promise => { - if (this.policy) { + if (this.instance) { return new PoliciesApi(DEFAULT_CONFIG).policiesReputationUpdate({ - policyUuid: this.policy.pk || "", + policyUuid: this.instance.pk || "", data: data }); } else { @@ -53,11 +48,11 @@ export class ReputationPolicyForm extends Form { label=${t`Name`} ?required=${true} name="name"> - +
- + @@ -73,7 +68,7 @@ export class ReputationPolicyForm extends Form {
- + @@ -81,7 +76,7 @@ export class ReputationPolicyForm extends Form {
- + @@ -91,7 +86,7 @@ export class ReputationPolicyForm extends Form { label=${t`Threshold`} ?required=${true} name="threshold"> - +