Kill off references to deprecated getStoredDevice
and getStoredDevicesForUser
(#11152)
* Use new `CryptoEvent.VerificationRequestReceived` event https://github.com/matrix-org/matrix-js-sdk/pull/3514 deprecates `CryptoEvent.VerificationRequest` in favour of `CryptoEvent.VerificationRequestReceived`. Use the new event. * Factor out `getDeviceCryptoInfo` function I seem to be writing this logic several times, so let's factor it out. * Factor out `getUserDeviceIds` function Another utility function * VerificationRequestToast: `getStoredDevice` -> `getDeviceCryptoInfo` * SlashCommands: `getStoredDevice` -> `getDeviceCryptoInfo` * MemberTile: `getStoredDevicesForUser` -> `getUserDeviceIds` * Remove redundant mock of `getStoredDevicesForUser`
This commit is contained in:
parent
0a3a111327
commit
46eb34a55d
11 changed files with 189 additions and 34 deletions
67
src/utils/crypto/deviceInfo.ts
Normal file
67
src/utils/crypto/deviceInfo.ts
Normal file
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
Copyright 2023 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import { Device, MatrixClient } from "matrix-js-sdk/src/matrix";
|
||||
|
||||
/**
|
||||
* Get crypto information on a specific device.
|
||||
*
|
||||
* Only devices with Crypto support are returned. If the MatrixClient doesn't support cryptography, `undefined` is
|
||||
* returned.
|
||||
*
|
||||
* @param client - Matrix Client.
|
||||
* @param userId - ID of the user owning the device.
|
||||
* @param deviceId - ID of the device.
|
||||
* @param downloadUncached - If true, download the device list for users whose device list we are not
|
||||
* currently tracking. Defaults to false.
|
||||
*
|
||||
* @returns Information on the device if it is known.
|
||||
*/
|
||||
export async function getDeviceCryptoInfo(
|
||||
client: MatrixClient,
|
||||
userId: string,
|
||||
deviceId: string,
|
||||
downloadUncached?: boolean,
|
||||
): Promise<Device | undefined> {
|
||||
const crypto = client.getCrypto();
|
||||
if (!crypto) {
|
||||
// no crypto support, no device.
|
||||
return undefined;
|
||||
}
|
||||
|
||||
const deviceMap = await crypto.getUserDeviceInfo([userId], downloadUncached);
|
||||
return deviceMap.get(userId)?.get(deviceId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the IDs of the given user's devices.
|
||||
*
|
||||
* Only devices with Crypto support are returned. If the MatrixClient doesn't support cryptography, an empty Set is
|
||||
* returned.
|
||||
*
|
||||
* @param client - Matrix Client.
|
||||
* @param userId - ID of the user to query.
|
||||
*/
|
||||
|
||||
export async function getUserDeviceIds(client: MatrixClient, userId: string): Promise<Set<string>> {
|
||||
const crypto = client.getCrypto();
|
||||
if (!crypto) {
|
||||
return new Set();
|
||||
}
|
||||
|
||||
const deviceMap = await crypto.getUserDeviceInfo([userId]);
|
||||
return new Set(deviceMap.get(userId)?.keys() ?? []);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue