make the confirmModal controller send a boolean back depending on the user's answer
this avoids the error in console "uncaught exception in promise"
This commit is contained in:
@@ -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<boolean> {
|
||||
try {
|
||||
await new UmbConfirmModalController(host).open(args);
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<never> {
|
||||
constructor(host: UmbControllerHost, args: UmbEntityActionArgs<never>) {
|
||||
@@ -22,13 +23,17 @@ export class UmbDisableUserEntityAction extends UmbEntityActionBase<never> {
|
||||
|
||||
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]);
|
||||
}
|
||||
|
||||
@@ -22,12 +22,14 @@ export class UmbEnableUserEntityAction extends UmbEntityActionBase<never> {
|
||||
|
||||
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]);
|
||||
}
|
||||
|
||||
@@ -22,12 +22,14 @@ export class UmbUnlockUserEntityAction extends UmbEntityActionBase<never> {
|
||||
|
||||
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]);
|
||||
}
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
Reference in New Issue
Block a user