diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.controller.ts b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.controller.ts index 61fb44d6a4..6bede39f5f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.controller.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/modal/common/confirm/confirm-modal.controller.ts @@ -27,6 +27,11 @@ export class UmbConfirmModalController extends UmbControllerBase { } } -export function umbConfirmModal(host: UmbControllerHost, args: UmbConfirmModalArgs) { - return new UmbConfirmModalController(host).open(args); +export async function umbConfirmModal(host: UmbControllerHost, args: UmbConfirmModalArgs): Promise { + try { + await new UmbConfirmModalController(host).open(args); + return true; + } catch { + return false; + } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts index 79bc7b187b..a087eb675f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/disable/disable-user.action.ts @@ -4,6 +4,7 @@ import type { UmbEntityActionArgs } from '@umbraco-cms/backoffice/entity-action' import { UmbEntityActionBase } from '@umbraco-cms/backoffice/entity-action'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { umbConfirmModal } from '@umbraco-cms/backoffice/modal'; +import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api'; export class UmbDisableUserEntityAction extends UmbEntityActionBase { constructor(host: UmbControllerHost, args: UmbEntityActionArgs) { @@ -22,13 +23,17 @@ export class UmbDisableUserEntityAction extends UmbEntityActionBase { const item = data[0]; - await umbConfirmModal(this._host, { - headline: `Disable ${item.name}`, - content: 'Are you sure you want to disable this user?', + const localize = new UmbLocalizationController(this._host); + + const confirm = await umbConfirmModal(this._host, { + headline: `${localize.term('user_disabled')} ${item.name}`, + content: localize.term('defaultdialogs_confirmdisable'), color: 'danger', - confirmLabel: 'Disable', + confirmLabel: localize.term('actions_disable'), }); + if (!confirm) return; + const disableUserRepository = new UmbDisableUserRepository(this); await disableUserRepository.disable([this.args.unique]); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts index 6e19458210..c0c2b2884b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/enable/enable-user.action.ts @@ -22,12 +22,14 @@ export class UmbEnableUserEntityAction extends UmbEntityActionBase { const item = data[0]; - await umbConfirmModal(this._host, { + const confirm = await umbConfirmModal(this._host, { headline: `Enable ${item.name}`, content: 'Are you sure you want to enable this user?', confirmLabel: 'Enable', }); + if (!confirm) return; + const enableRepository = new UmbEnableUserRepository(this); await enableRepository.enable([this.args.unique]); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts index 00df1dbb47..d788952211 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/entity-actions/unlock/unlock-user.action.ts @@ -22,12 +22,14 @@ export class UmbUnlockUserEntityAction extends UmbEntityActionBase { const item = data[0]; - await umbConfirmModal(this._host, { + const confirm = await umbConfirmModal(this._host, { headline: `Unlock ${item.name}`, content: 'Are you sure you want to unlock this user?', confirmLabel: 'Unlock', }); + if (!confirm) return; + const unlockUserRepository = new UmbUnlockUserRepository(this); await unlockUserRepository?.unlock([this.args.unique]); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-mfa/user-mfa-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-mfa/user-mfa-modal.element.ts index e76a365753..24aea7b669 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-mfa/user-mfa-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/modals/user-mfa/user-mfa-modal.element.ts @@ -3,7 +3,7 @@ import type { UmbUserMfaProviderModel } from '../../types.js'; import type { UmbUserMfaModalConfiguration } from './user-mfa-modal.token.js'; import { css, customElement, html, property, repeat, state, when } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import { UMB_CONFIRM_MODAL, UMB_MODAL_MANAGER_CONTEXT, type UmbModalContext } from '@umbraco-cms/backoffice/modal'; +import { umbConfirmModal, type UmbModalContext } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { mergeObservables } from '@umbraco-cms/backoffice/observable-api'; @@ -125,23 +125,17 @@ export class UmbUserMfaModalElement extends UmbLitElement { * NB! The user must have administrative rights before doing so. */ async #onProviderDisable(item: UmbMfaLoginProviderOption) { - const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT); - const confirm = await modalManager - .open(this, UMB_CONFIRM_MODAL, { - data: { - headline: this.localize.term('actions_disable'), - content: this.localize.term('user_2faDisableForUser'), - confirmLabel: this.localize.term('actions_disable'), - color: 'danger', - }, - }) - .onSubmit() - .catch(() => false); + const confirm = await umbConfirmModal(this, { + headline: this.localize.term('actions_disable'), + content: this.localize.term('user_2faDisableForUser'), + confirmLabel: this.localize.term('actions_disable'), + color: 'danger', + }); - if (confirm !== false) { - await this.#userRepository.disableMfaProvider(this.#unique, item.providerName); - this.#loadProviders(); - } + if (!confirm) return; + + await this.#userRepository.disableMfaProvider(this.#unique, item.providerName); + this.#loadProviders(); } static styles = [