Don't enable e2ee from profileViewer for bridge users (#666)
authorKrishan <33421343+kfiven@users.noreply.github.com>
Fri, 8 Jul 2022 14:54:35 +0000 (20:24 +0530)
committerGitHub <noreply@github.com>
Fri, 8 Jul 2022 14:54:35 +0000 (20:24 +0530)
src/app/organisms/invite-user/InviteUser.jsx
src/app/organisms/profile-viewer/ProfileViewer.jsx
src/util/matrixUtil.js

index d0a8d9e13dfe28f31c542eb92d0320708cdc97fb..7519510245cfe263f6a991bbadd0bb226515b738 100644 (file)
@@ -6,7 +6,7 @@ import initMatrix from '../../../client/initMatrix';
 import cons from '../../../client/state/cons';
 import * as roomActions from '../../../client/action/room';
 import { selectRoom } from '../../../client/action/navigation';
-import { hasDMWith } from '../../../util/matrixUtil';
+import { hasDMWith, hasDevices } from '../../../util/matrixUtil';
 
 import Text from '../../atoms/text/Text';
 import Button from '../../atoms/button/Button';
@@ -103,18 +103,6 @@ function InviteUser({
     updateIsSearching(false);
   }
 
-  async function hasDevices(userId) {
-    try {
-      const usersDeviceMap = await mx.downloadKeys([userId, mx.getUserId()]);
-      return Object.values(usersDeviceMap).every((userDevices) =>
-        Object.keys(userDevices).length > 0,
-      );
-    } catch (e) {
-      console.error("Error determining if it's possible to encrypt to all users: ", e);
-      return false;
-    }
-  }
-
   async function createDM(userId) {
     if (mx.getUserId() === userId) return;
     const dmRoomId = hasDMWith(userId);
index d74629f26537baecda23281bc5dc85edc92f25a9..26e39682956029e4b939ddc21724b291b5e283c9 100644 (file)
@@ -11,7 +11,7 @@ import { selectRoom, openReusableContextMenu } from '../../../client/action/navi
 import * as roomActions from '../../../client/action/room';
 
 import {
-  getUsername, getUsernameOfRoomMember, getPowerLabel, hasDMWith
+  getUsername, getUsernameOfRoomMember, getPowerLabel, hasDMWith, hasDevices
 } from '../../../util/matrixUtil';
 import { getEventCords } from '../../../util/common';
 import colorMXID from '../../../util/colorMXID';
@@ -201,7 +201,7 @@ function ProfileFooter({ roomId, userId, onRequestClose }) {
     // Create new DM
     try {
       setIsCreatingDM(true);
-      await roomActions.createDM(userId);
+      await roomActions.createDM(userId, await hasDevices(userId));
     } catch {
       if (isMountedRef.current === false) return;
       setIsCreatingDM(false);
index 16be1175562e3a3f942837f814fcc874d2db828d..fb97d8509770ee17d697eeb2424a247507ef3225 100644 (file)
@@ -199,3 +199,16 @@ export function getSSKeyInfo(key) {
     return undefined;
   }
 }
+
+export async function hasDevices(userId) {
+  const mx = initMatrix.matrixClient;
+  try {
+    const usersDeviceMap = await mx.downloadKeys([userId, mx.getUserId()]);
+    return Object.values(usersDeviceMap).every((userDevices) =>
+      Object.keys(userDevices).length > 0,
+    );
+  } catch (e) {
+    console.error("Error determining if it's possible to encrypt to all users: ", e);
+    return false;
+  }
+}
\ No newline at end of file