mirror of https://github.com/vector-im/riot-web
Merge pull request #2113 from matrix-org/bwindels/e2e_enc_ll
Lazy loading: fix end-to-end encryption roomspull/21833/head
commit
612077125e
|
@ -84,7 +84,7 @@ ConferenceCall.prototype._getConferenceUserRoom = function() {
|
|||
preset: "private_chat",
|
||||
invite: [this.confUserId]
|
||||
}).then(function(res) {
|
||||
return new Room(res.room_id, client.getUserId());
|
||||
return new Room(res.room_id, null, client.getUserId());
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -317,7 +317,7 @@ module.exports = React.createClass({
|
|||
|
||||
// lazy load members if enabled
|
||||
if (SettingsStore.isFeatureEnabled('feature_lazyloading')) {
|
||||
MatrixClientPeg.get().loadRoomMembersIfNeeded(room.roomId).catch((err) => {
|
||||
room.loadMembersIfNeeded().catch((err) => {
|
||||
const errorMessage = `Fetching room members for ${this.roomId} failed.` +
|
||||
" Room members will appear incomplete.";
|
||||
console.error(errorMessage);
|
||||
|
|
|
@ -43,27 +43,26 @@ export function markAllDevicesKnown(matrixClient, devices) {
|
|||
* @return {Promise} A promise which resolves to a map userId->deviceId->{@link
|
||||
* module:crypto~DeviceInfo|DeviceInfo}.
|
||||
*/
|
||||
export function getUnknownDevicesForRoom(matrixClient, room) {
|
||||
const roomMembers = room.getEncryptionTargetMembers().map((m) => {
|
||||
export async function getUnknownDevicesForRoom(matrixClient, room) {
|
||||
const roomMembers = await room.getEncryptionTargetMembers().map((m) => {
|
||||
return m.userId;
|
||||
});
|
||||
return matrixClient.downloadKeys(roomMembers, false).then((devices) => {
|
||||
const unknownDevices = {};
|
||||
// This is all devices in this room, so find the unknown ones.
|
||||
Object.keys(devices).forEach((userId) => {
|
||||
Object.keys(devices[userId]).map((deviceId) => {
|
||||
const device = devices[userId][deviceId];
|
||||
const devices = await matrixClient.downloadKeys(roomMembers, false);
|
||||
const unknownDevices = {};
|
||||
// This is all devices in this room, so find the unknown ones.
|
||||
Object.keys(devices).forEach((userId) => {
|
||||
Object.keys(devices[userId]).map((deviceId) => {
|
||||
const device = devices[userId][deviceId];
|
||||
|
||||
if (device.isUnverified() && !device.isKnown()) {
|
||||
if (unknownDevices[userId] === undefined) {
|
||||
unknownDevices[userId] = {};
|
||||
}
|
||||
unknownDevices[userId][deviceId] = device;
|
||||
if (device.isUnverified() && !device.isKnown()) {
|
||||
if (unknownDevices[userId] === undefined) {
|
||||
unknownDevices[userId] = {};
|
||||
}
|
||||
});
|
||||
unknownDevices[userId][deviceId] = device;
|
||||
}
|
||||
});
|
||||
return unknownDevices;
|
||||
});
|
||||
return unknownDevices;
|
||||
}
|
||||
|
||||
function focusComposer() {
|
||||
|
|
|
@ -23,7 +23,7 @@ function generateRoomId() {
|
|||
|
||||
describe('RoomList', () => {
|
||||
function createRoom(opts) {
|
||||
const room = new Room(generateRoomId(), client.getUserId());
|
||||
const room = new Room(generateRoomId(), null, client.getUserId());
|
||||
if (opts) {
|
||||
Object.assign(room, opts);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue