web/admin: fix deletion of authenticator not reloading the state correctly
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		| @ -1,5 +1,5 @@ | |||||||
| import { t } from "@lingui/macro"; | import { t } from "@lingui/macro"; | ||||||
| import { CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element"; | import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element"; | ||||||
|  |  | ||||||
| import PFPage from "@patternfly/patternfly/components/Page/page.css"; | import PFPage from "@patternfly/patternfly/components/Page/page.css"; | ||||||
| import PFContent from "@patternfly/patternfly/components/Content/content.css"; | import PFContent from "@patternfly/patternfly/components/Content/content.css"; | ||||||
| @ -27,6 +27,7 @@ import "./settings/UserSettingsAuthenticatorTOTP"; | |||||||
| import "./settings/UserSettingsAuthenticatorWebAuthn"; | import "./settings/UserSettingsAuthenticatorWebAuthn"; | ||||||
| import "./settings/UserSettingsPassword"; | import "./settings/UserSettingsPassword"; | ||||||
| import "./settings/SourceSettingsOAuth"; | import "./settings/SourceSettingsOAuth"; | ||||||
|  | import { EVENT_REFRESH } from "../../constants"; | ||||||
|  |  | ||||||
| @customElement("ak-user-settings") | @customElement("ak-user-settings") | ||||||
| export class UserSettingsPage extends LitElement { | export class UserSettingsPage extends LitElement { | ||||||
| @ -35,6 +36,24 @@ export class UserSettingsPage extends LitElement { | |||||||
|         return [PFBase, PFPage, PFFlex, PFDisplay, PFGallery, PFContent, PFCard, PFDescriptionList, PFSizing, PFForm, PFFormControl, AKGlobal]; |         return [PFBase, PFPage, PFFlex, PFDisplay, PFGallery, PFContent, PFCard, PFDescriptionList, PFSizing, PFForm, PFFormControl, AKGlobal]; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @property() | ||||||
|  |     userSettings?: Promise<UserSetting[]>; | ||||||
|  |  | ||||||
|  |     @property() | ||||||
|  |     sourceSettings?: Promise<UserSetting[]>; | ||||||
|  |  | ||||||
|  |     constructor() { | ||||||
|  |         super(); | ||||||
|  |         this.addEventListener(EVENT_REFRESH, () => { | ||||||
|  |             this.firstUpdated(); | ||||||
|  |         }); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     firstUpdated() { | ||||||
|  |         this.userSettings = new StagesApi(DEFAULT_CONFIG).stagesAllUserSettingsList(); | ||||||
|  |         this.sourceSettings = new SourcesApi(DEFAULT_CONFIG).sourcesAllUserSettingsList(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     renderStageSettings(stage: UserSetting): TemplateResult { |     renderStageSettings(stage: UserSetting): TemplateResult { | ||||||
|         switch (stage.component) { |         switch (stage.component) { | ||||||
|             case "ak-user-settings-authenticator-webauthn": |             case "ak-user-settings-authenticator-webauthn": | ||||||
| @ -82,14 +101,14 @@ export class UserSettingsPage extends LitElement { | |||||||
|                     <section slot="page-tokens" data-tab-title="${t`Tokens`}" class="pf-c-page__main-section pf-m-no-padding-mobile"> |                     <section slot="page-tokens" data-tab-title="${t`Tokens`}" class="pf-c-page__main-section pf-m-no-padding-mobile"> | ||||||
|                         <ak-user-token-list></ak-user-token-list> |                         <ak-user-token-list></ak-user-token-list> | ||||||
|                     </section> |                     </section> | ||||||
|                     ${until(new StagesApi(DEFAULT_CONFIG).stagesAllUserSettingsList().then((stages) => { |                     ${until(this.userSettings?.then((stages) => { | ||||||
|                         return stages.map((stage) => { |                         return stages.map((stage) => { | ||||||
|                             return html`<section slot="page-${stage.objectUid}" data-tab-title="${ifDefined(stage.title)}" class="pf-c-page__main-section pf-m-no-padding-mobile"> |                             return html`<section slot="page-${stage.objectUid}" data-tab-title="${ifDefined(stage.title)}" class="pf-c-page__main-section pf-m-no-padding-mobile"> | ||||||
|                                 ${this.renderStageSettings(stage)} |                                 ${this.renderStageSettings(stage)} | ||||||
|                             </section>`; |                             </section>`; | ||||||
|                         }); |                         }); | ||||||
|                     }))} |                     }))} | ||||||
|                     ${until(new SourcesApi(DEFAULT_CONFIG).sourcesAllUserSettingsList().then((source) => { |                     ${until(this.sourceSettings?.then((source) => { | ||||||
|                         return source.map((stage) => { |                         return source.map((stage) => { | ||||||
|                             return html`<section slot="page-${stage.objectUid}" data-tab-title="${ifDefined(stage.title)}" class="pf-c-page__main-section pf-m-no-padding-mobile"> |                             return html`<section slot="page-${stage.objectUid}" data-tab-title="${ifDefined(stage.title)}" class="pf-c-page__main-section pf-m-no-padding-mobile"> | ||||||
|                                 ${this.renderSourceSettings(stage)} |                                 ${this.renderSourceSettings(stage)} | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ import { customElement, html, TemplateResult } from "lit-element"; | |||||||
| import { until } from "lit-html/directives/until"; | import { until } from "lit-html/directives/until"; | ||||||
| import { DEFAULT_CONFIG } from "../../../api/Config"; | import { DEFAULT_CONFIG } from "../../../api/Config"; | ||||||
| import { BaseUserSettings } from "./BaseUserSettings"; | import { BaseUserSettings } from "./BaseUserSettings"; | ||||||
|  | import { EVENT_REFRESH } from "../../../constants"; | ||||||
|  |  | ||||||
| @customElement("ak-user-settings-authenticator-duo") | @customElement("ak-user-settings-authenticator-duo") | ||||||
| export class UserSettingsAuthenticatorDuo extends BaseUserSettings { | export class UserSettingsAuthenticatorDuo extends BaseUserSettings { | ||||||
| @ -27,7 +28,12 @@ export class UserSettingsAuthenticatorDuo extends BaseUserSettings { | |||||||
|                             return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsDuoDestroy({ |                             return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsDuoDestroy({ | ||||||
|                                 id: devices.results[0].pk || 0 |                                 id: devices.results[0].pk || 0 | ||||||
|                             }).then(() => { |                             }).then(() => { | ||||||
|                                 this.requestUpdate(); |                                 this.dispatchEvent( | ||||||
|  |                                     new CustomEvent(EVENT_REFRESH, { | ||||||
|  |                                         bubbles: true, | ||||||
|  |                                         composed: true, | ||||||
|  |                                     }) | ||||||
|  |                                 ); | ||||||
|                             }); |                             }); | ||||||
|                         }); |                         }); | ||||||
|                     }}> |                     }}> | ||||||
|  | |||||||
| @ -5,6 +5,7 @@ import { until } from "lit-html/directives/until"; | |||||||
| import { DEFAULT_CONFIG } from "../../../api/Config"; | import { DEFAULT_CONFIG } from "../../../api/Config"; | ||||||
| import { STATIC_TOKEN_STYLE } from "../../../flows/stages/authenticator_static/AuthenticatorStaticStage"; | import { STATIC_TOKEN_STYLE } from "../../../flows/stages/authenticator_static/AuthenticatorStaticStage"; | ||||||
| import { BaseUserSettings } from "./BaseUserSettings"; | import { BaseUserSettings } from "./BaseUserSettings"; | ||||||
|  | import { EVENT_REFRESH } from "../../../constants"; | ||||||
|  |  | ||||||
| @customElement("ak-user-settings-authenticator-static") | @customElement("ak-user-settings-authenticator-static") | ||||||
| export class UserSettingsAuthenticatorStatic extends BaseUserSettings { | export class UserSettingsAuthenticatorStatic extends BaseUserSettings { | ||||||
| @ -42,7 +43,12 @@ export class UserSettingsAuthenticatorStatic extends BaseUserSettings { | |||||||
|                             return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsStaticDestroy({ |                             return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsStaticDestroy({ | ||||||
|                                 id: devices.results[0].pk || 0 |                                 id: devices.results[0].pk || 0 | ||||||
|                             }).then(() => { |                             }).then(() => { | ||||||
|                                 this.requestUpdate(); |                                 this.dispatchEvent( | ||||||
|  |                                     new CustomEvent(EVENT_REFRESH, { | ||||||
|  |                                         bubbles: true, | ||||||
|  |                                         composed: true, | ||||||
|  |                                     }) | ||||||
|  |                                 ); | ||||||
|                             }); |                             }); | ||||||
|                         }); |                         }); | ||||||
|                     }}> |                     }}> | ||||||
|  | |||||||
| @ -4,6 +4,7 @@ import { customElement, html, TemplateResult } from "lit-element"; | |||||||
| import { until } from "lit-html/directives/until"; | import { until } from "lit-html/directives/until"; | ||||||
| import { DEFAULT_CONFIG } from "../../../api/Config"; | import { DEFAULT_CONFIG } from "../../../api/Config"; | ||||||
| import { BaseUserSettings } from "./BaseUserSettings"; | import { BaseUserSettings } from "./BaseUserSettings"; | ||||||
|  | import { EVENT_REFRESH } from "../../../constants"; | ||||||
|  |  | ||||||
| @customElement("ak-user-settings-authenticator-totp") | @customElement("ak-user-settings-authenticator-totp") | ||||||
| export class UserSettingsAuthenticatorTOTP extends BaseUserSettings { | export class UserSettingsAuthenticatorTOTP extends BaseUserSettings { | ||||||
| @ -27,7 +28,12 @@ export class UserSettingsAuthenticatorTOTP extends BaseUserSettings { | |||||||
|                             return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsTotpDestroy({ |                             return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsTotpDestroy({ | ||||||
|                                 id: devices.results[0].pk || 0 |                                 id: devices.results[0].pk || 0 | ||||||
|                             }).then(() => { |                             }).then(() => { | ||||||
|                                 this.requestUpdate(); |                                 this.dispatchEvent( | ||||||
|  |                                     new CustomEvent(EVENT_REFRESH, { | ||||||
|  |                                         bubbles: true, | ||||||
|  |                                         composed: true, | ||||||
|  |                                     }) | ||||||
|  |                                 ); | ||||||
|                             }); |                             }); | ||||||
|                         }); |                         }); | ||||||
|                     }}> |                     }}> | ||||||
|  | |||||||
| @ -12,6 +12,7 @@ import "../../../elements/forms/Form"; | |||||||
| import "../../../elements/forms/ModalForm"; | import "../../../elements/forms/ModalForm"; | ||||||
| import "../../../elements/forms/HorizontalFormElement"; | import "../../../elements/forms/HorizontalFormElement"; | ||||||
| import { ifDefined } from "lit-html/directives/if-defined"; | import { ifDefined } from "lit-html/directives/if-defined"; | ||||||
|  | import { EVENT_REFRESH } from "../../../constants"; | ||||||
|  |  | ||||||
| @customElement("ak-user-settings-authenticator-webauthn") | @customElement("ak-user-settings-authenticator-webauthn") | ||||||
| export class UserSettingsAuthenticatorWebAuthn extends BaseUserSettings { | export class UserSettingsAuthenticatorWebAuthn extends BaseUserSettings { | ||||||
| @ -28,7 +29,12 @@ export class UserSettingsAuthenticatorWebAuthn extends BaseUserSettings { | |||||||
|                 return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsWebauthnDestroy({ |                 return new AuthenticatorsApi(DEFAULT_CONFIG).authenticatorsWebauthnDestroy({ | ||||||
|                     id: device.pk || 0 |                     id: device.pk || 0 | ||||||
|                 }).then(() => { |                 }).then(() => { | ||||||
|                     this.requestUpdate(); |                     this.dispatchEvent( | ||||||
|  |                         new CustomEvent(EVENT_REFRESH, { | ||||||
|  |                             bubbles: true, | ||||||
|  |                             composed: true, | ||||||
|  |                         }) | ||||||
|  |                     ); | ||||||
|                 }); |                 }); | ||||||
|             }}> |             }}> | ||||||
|             <button slot="trigger" class="pf-c-button pf-m-danger"> |             <button slot="trigger" class="pf-c-button pf-m-danger"> | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer