UNPKG

matrix-react-sdk

Version:
77 lines (72 loc) 10.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.deleteDevicesWithInteractiveAuth = void 0; var _matrix = require("matrix-js-sdk/src/matrix"); var _languageHandler = require("../../../../languageHandler"); var _Modal = _interopRequireDefault(require("../../../../Modal")); var _InteractiveAuthEntryComponents = require("../../auth/InteractiveAuthEntryComponents"); var _InteractiveAuthDialog = _interopRequireDefault(require("../../dialogs/InteractiveAuthDialog")); /* Copyright 2024 New Vector Ltd. Copyright 2022 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ const makeDeleteRequest = (matrixClient, deviceIds) => async auth => { return matrixClient.deleteMultipleDevices(deviceIds, auth ?? undefined); }; const deleteDevicesWithInteractiveAuth = async (matrixClient, deviceIds, onFinished) => { if (!deviceIds.length) { return; } try { await makeDeleteRequest(matrixClient, deviceIds)(null); // no interactive auth needed await onFinished(true, undefined); } catch (error) { if (!(error instanceof _matrix.MatrixError) || error.httpStatus !== 401 || !error.data?.flows) { // doesn't look like an interactive-auth failure throw error; } // pop up an interactive auth dialog const numDevices = deviceIds.length; const dialogAesthetics = { [_InteractiveAuthEntryComponents.SSOAuthEntry.PHASE_PREAUTH]: { title: (0, _languageHandler._t)("auth|uia|sso_title"), body: (0, _languageHandler._t)("settings|sessions|confirm_sign_out_sso", { count: numDevices }), continueText: (0, _languageHandler._t)("auth|sso"), continueKind: "primary" }, [_InteractiveAuthEntryComponents.SSOAuthEntry.PHASE_POSTAUTH]: { title: (0, _languageHandler._t)("settings|sessions|confirm_sign_out", { count: numDevices }), body: (0, _languageHandler._t)("settings|sessions|confirm_sign_out_body", { count: numDevices }), continueText: (0, _languageHandler._t)("settings|sessions|confirm_sign_out_continue", { count: numDevices }), continueKind: "danger" } }; _Modal.default.createDialog(_InteractiveAuthDialog.default, { title: (0, _languageHandler._t)("common|authentication"), matrixClient: matrixClient, authData: error.data, onFinished, makeRequest: makeDeleteRequest(matrixClient, deviceIds), aestheticsForStagePhases: { [_InteractiveAuthEntryComponents.SSOAuthEntry.LOGIN_TYPE]: dialogAesthetics, [_InteractiveAuthEntryComponents.SSOAuthEntry.UNSTABLE_LOGIN_TYPE]: dialogAesthetics } }); } }; exports.deleteDevicesWithInteractiveAuth = deleteDevicesWithInteractiveAuth; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0cml4IiwicmVxdWlyZSIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfTW9kYWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50cyIsIl9JbnRlcmFjdGl2ZUF1dGhEaWFsb2ciLCJtYWtlRGVsZXRlUmVxdWVzdCIsIm1hdHJpeENsaWVudCIsImRldmljZUlkcyIsImF1dGgiLCJkZWxldGVNdWx0aXBsZURldmljZXMiLCJ1bmRlZmluZWQiLCJkZWxldGVEZXZpY2VzV2l0aEludGVyYWN0aXZlQXV0aCIsIm9uRmluaXNoZWQiLCJsZW5ndGgiLCJlcnJvciIsIk1hdHJpeEVycm9yIiwiaHR0cFN0YXR1cyIsImRhdGEiLCJmbG93cyIsIm51bURldmljZXMiLCJkaWFsb2dBZXN0aGV0aWNzIiwiU1NPQXV0aEVudHJ5IiwiUEhBU0VfUFJFQVVUSCIsInRpdGxlIiwiX3QiLCJib2R5IiwiY291bnQiLCJjb250aW51ZVRleHQiLCJjb250aW51ZUtpbmQiLCJQSEFTRV9QT1NUQVVUSCIsIk1vZGFsIiwiY3JlYXRlRGlhbG9nIiwiSW50ZXJhY3RpdmVBdXRoRGlhbG9nIiwiYXV0aERhdGEiLCJtYWtlUmVxdWVzdCIsImFlc3RoZXRpY3NGb3JTdGFnZVBoYXNlcyIsIkxPR0lOX1RZUEUiLCJVTlNUQUJMRV9MT0dJTl9UWVBFIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvZGVsZXRlRGV2aWNlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IHsgTWF0cml4Q2xpZW50LCBNYXRyaXhFcnJvciB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcbmltcG9ydCB7IEF1dGhEaWN0LCBJQXV0aERhdGEgfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvaW50ZXJhY3RpdmUtYXV0aFwiO1xuXG5pbXBvcnQgeyBfdCB9IGZyb20gXCIuLi8uLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vLi4vLi4vTW9kYWxcIjtcbmltcG9ydCB7IEludGVyYWN0aXZlQXV0aENhbGxiYWNrIH0gZnJvbSBcIi4uLy4uLy4uL3N0cnVjdHVyZXMvSW50ZXJhY3RpdmVBdXRoXCI7XG5pbXBvcnQgeyBTU09BdXRoRW50cnkgfSBmcm9tIFwiLi4vLi4vYXV0aC9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNcIjtcbmltcG9ydCBJbnRlcmFjdGl2ZUF1dGhEaWFsb2cgZnJvbSBcIi4uLy4uL2RpYWxvZ3MvSW50ZXJhY3RpdmVBdXRoRGlhbG9nXCI7XG5cbmNvbnN0IG1ha2VEZWxldGVSZXF1ZXN0ID1cbiAgICAobWF0cml4Q2xpZW50OiBNYXRyaXhDbGllbnQsIGRldmljZUlkczogc3RyaW5nW10pID0+XG4gICAgYXN5bmMgKGF1dGg6IEF1dGhEaWN0IHwgbnVsbCk6IFByb21pc2U8SUF1dGhEYXRhPiA9PiB7XG4gICAgICAgIHJldHVybiBtYXRyaXhDbGllbnQuZGVsZXRlTXVsdGlwbGVEZXZpY2VzKGRldmljZUlkcywgYXV0aCA/PyB1bmRlZmluZWQpO1xuICAgIH07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVEZXZpY2VzV2l0aEludGVyYWN0aXZlQXV0aCA9IGFzeW5jIChcbiAgICBtYXRyaXhDbGllbnQ6IE1hdHJpeENsaWVudCxcbiAgICBkZXZpY2VJZHM6IHN0cmluZ1tdLFxuICAgIG9uRmluaXNoZWQ6IEludGVyYWN0aXZlQXV0aENhbGxiYWNrPHZvaWQ+LFxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKCFkZXZpY2VJZHMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgbWFrZURlbGV0ZVJlcXVlc3QobWF0cml4Q2xpZW50LCBkZXZpY2VJZHMpKG51bGwpO1xuICAgICAgICAvLyBubyBpbnRlcmFjdGl2ZSBhdXRoIG5lZWRlZFxuICAgICAgICBhd2FpdCBvbkZpbmlzaGVkKHRydWUsIHVuZGVmaW5lZCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBNYXRyaXhFcnJvcikgfHwgZXJyb3IuaHR0cFN0YXR1cyAhPT0gNDAxIHx8ICFlcnJvci5kYXRhPy5mbG93cykge1xuICAgICAgICAgICAgLy8gZG9lc24ndCBsb29rIGxpa2UgYW4gaW50ZXJhY3RpdmUtYXV0aCBmYWlsdXJlXG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHBvcCB1cCBhbiBpbnRlcmFjdGl2ZSBhdXRoIGRpYWxvZ1xuXG4gICAgICAgIGNvbnN0IG51bURldmljZXMgPSBkZXZpY2VJZHMubGVuZ3RoO1xuICAgICAgICBjb25zdCBkaWFsb2dBZXN0aGV0aWNzID0ge1xuICAgICAgICAgICAgW1NTT0F1dGhFbnRyeS5QSEFTRV9QUkVBVVRIXToge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBfdChcImF1dGh8dWlhfHNzb190aXRsZVwiKSxcbiAgICAgICAgICAgICAgICBib2R5OiBfdChcInNldHRpbmdzfHNlc3Npb25zfGNvbmZpcm1fc2lnbl9vdXRfc3NvXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnQ6IG51bURldmljZXMsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY29udGludWVUZXh0OiBfdChcImF1dGh8c3NvXCIpLFxuICAgICAgICAgICAgICAgIGNvbnRpbnVlS2luZDogXCJwcmltYXJ5XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW1NTT0F1dGhFbnRyeS5QSEFTRV9QT1NUQVVUSF06IHtcbiAgICAgICAgICAgICAgICB0aXRsZTogX3QoXCJzZXR0aW5nc3xzZXNzaW9uc3xjb25maXJtX3NpZ25fb3V0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgY291bnQ6IG51bURldmljZXMsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgYm9keTogX3QoXCJzZXR0aW5nc3xzZXNzaW9uc3xjb25maXJtX3NpZ25fb3V0X2JvZHlcIiwge1xuICAgICAgICAgICAgICAgICAgICBjb3VudDogbnVtRGV2aWNlcyxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjb250aW51ZVRleHQ6IF90KFwic2V0dGluZ3N8c2Vzc2lvbnN8Y29uZmlybV9zaWduX291dF9jb250aW51ZVwiLCB7IGNvdW50OiBudW1EZXZpY2VzIH0pLFxuICAgICAgICAgICAgICAgIGNvbnRpbnVlS2luZDogXCJkYW5nZXJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIE1vZGFsLmNyZWF0ZURpYWxvZyhJbnRlcmFjdGl2ZUF1dGhEaWFsb2csIHtcbiAgICAgICAgICAgIHRpdGxlOiBfdChcImNvbW1vbnxhdXRoZW50aWNhdGlvblwiKSxcbiAgICAgICAgICAgIG1hdHJpeENsaWVudDogbWF0cml4Q2xpZW50LFxuICAgICAgICAgICAgYXV0aERhdGE6IGVycm9yLmRhdGEgYXMgSUF1dGhEYXRhLFxuICAgICAgICAgICAgb25GaW5pc2hlZCxcbiAgICAgICAgICAgIG1ha2VSZXF1ZXN0OiBtYWtlRGVsZXRlUmVxdWVzdChtYXRyaXhDbGllbnQsIGRldmljZUlkcyksXG4gICAgICAgICAgICBhZXN0aGV0aWNzRm9yU3RhZ2VQaGFzZXM6IHtcbiAgICAgICAgICAgICAgICBbU1NPQXV0aEVudHJ5LkxPR0lOX1RZUEVdOiBkaWFsb2dBZXN0aGV0aWNzLFxuICAgICAgICAgICAgICAgIFtTU09BdXRoRW50cnkuVU5TVEFCTEVfTE9HSU5fVFlQRV06IGRpYWxvZ0Flc3RoZXRpY3MsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBUUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBR0EsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFJLCtCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxzQkFBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBV0EsTUFBTU0saUJBQWlCLEdBQ25CQSxDQUFDQyxZQUEwQixFQUFFQyxTQUFtQixLQUNoRCxNQUFPQyxJQUFxQixJQUF5QjtFQUNqRCxPQUFPRixZQUFZLENBQUNHLHFCQUFxQixDQUFDRixTQUFTLEVBQUVDLElBQUksSUFBSUUsU0FBUyxDQUFDO0FBQzNFLENBQUM7QUFFRSxNQUFNQyxnQ0FBZ0MsR0FBRyxNQUFBQSxDQUM1Q0wsWUFBMEIsRUFDMUJDLFNBQW1CLEVBQ25CSyxVQUF5QyxLQUN6QjtFQUNoQixJQUFJLENBQUNMLFNBQVMsQ0FBQ00sTUFBTSxFQUFFO0lBQ25CO0VBQ0o7RUFDQSxJQUFJO0lBQ0EsTUFBTVIsaUJBQWlCLENBQUNDLFlBQVksRUFBRUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3REO0lBQ0EsTUFBTUssVUFBVSxDQUFDLElBQUksRUFBRUYsU0FBUyxDQUFDO0VBQ3JDLENBQUMsQ0FBQyxPQUFPSSxLQUFLLEVBQUU7SUFDWixJQUFJLEVBQUVBLEtBQUssWUFBWUMsbUJBQVcsQ0FBQyxJQUFJRCxLQUFLLENBQUNFLFVBQVUsS0FBSyxHQUFHLElBQUksQ0FBQ0YsS0FBSyxDQUFDRyxJQUFJLEVBQUVDLEtBQUssRUFBRTtNQUNuRjtNQUNBLE1BQU1KLEtBQUs7SUFDZjs7SUFFQTs7SUFFQSxNQUFNSyxVQUFVLEdBQUdaLFNBQVMsQ0FBQ00sTUFBTTtJQUNuQyxNQUFNTyxnQkFBZ0IsR0FBRztNQUNyQixDQUFDQyw0Q0FBWSxDQUFDQyxhQUFhLEdBQUc7UUFDMUJDLEtBQUssRUFBRSxJQUFBQyxtQkFBRSxFQUFDLG9CQUFvQixDQUFDO1FBQy9CQyxJQUFJLEVBQUUsSUFBQUQsbUJBQUUsRUFBQyx3Q0FBd0MsRUFBRTtVQUMvQ0UsS0FBSyxFQUFFUDtRQUNYLENBQUMsQ0FBQztRQUNGUSxZQUFZLEVBQUUsSUFBQUgsbUJBQUUsRUFBQyxVQUFVLENBQUM7UUFDNUJJLFlBQVksRUFBRTtNQUNsQixDQUFDO01BQ0QsQ0FBQ1AsNENBQVksQ0FBQ1EsY0FBYyxHQUFHO1FBQzNCTixLQUFLLEVBQUUsSUFBQUMsbUJBQUUsRUFBQyxvQ0FBb0MsRUFBRTtVQUM1Q0UsS0FBSyxFQUFFUDtRQUNYLENBQUMsQ0FBQztRQUNGTSxJQUFJLEVBQUUsSUFBQUQsbUJBQUUsRUFBQyx5Q0FBeUMsRUFBRTtVQUNoREUsS0FBSyxFQUFFUDtRQUNYLENBQUMsQ0FBQztRQUNGUSxZQUFZLEVBQUUsSUFBQUgsbUJBQUUsRUFBQyw2Q0FBNkMsRUFBRTtVQUFFRSxLQUFLLEVBQUVQO1FBQVcsQ0FBQyxDQUFDO1FBQ3RGUyxZQUFZLEVBQUU7TUFDbEI7SUFDSixDQUFDO0lBQ0RFLGNBQUssQ0FBQ0MsWUFBWSxDQUFDQyw4QkFBcUIsRUFBRTtNQUN0Q1QsS0FBSyxFQUFFLElBQUFDLG1CQUFFLEVBQUMsdUJBQXVCLENBQUM7TUFDbENsQixZQUFZLEVBQUVBLFlBQVk7TUFDMUIyQixRQUFRLEVBQUVuQixLQUFLLENBQUNHLElBQWlCO01BQ2pDTCxVQUFVO01BQ1ZzQixXQUFXLEVBQUU3QixpQkFBaUIsQ0FBQ0MsWUFBWSxFQUFFQyxTQUFTLENBQUM7TUFDdkQ0Qix3QkFBd0IsRUFBRTtRQUN0QixDQUFDZCw0Q0FBWSxDQUFDZSxVQUFVLEdBQUdoQixnQkFBZ0I7UUFDM0MsQ0FBQ0MsNENBQVksQ0FBQ2dCLG1CQUFtQixHQUFHakI7TUFDeEM7SUFDSixDQUFDLENBQUM7RUFDTjtBQUNKLENBQUM7QUFBQ2tCLE9BQUEsQ0FBQTNCLGdDQUFBLEdBQUFBLGdDQUFBIiwiaWdub3JlTGlzdCI6W119