matrix-react-sdk
Version:
SDK for matrix.org using React
77 lines (72 loc) • 10.4 kB
JavaScript
;
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