Use the New Session review dialog for verifying our own devices
							parent
							
								
									0edb80e541
								
							
						
					
					
						commit
						996f8af365
					
				|  | @ -191,17 +191,29 @@ function DeviceItem({userId, device}) { | |||
|             device.getDisplayName(); | ||||
|     let trustedLabel = null; | ||||
|     if (userTrust.isVerified()) trustedLabel = isVerified ? _t("Trusted") : _t("Not trusted"); | ||||
|     return ( | ||||
|         <AccessibleButton | ||||
|             className={classes} | ||||
|             title={device.deviceId} | ||||
|             onClick={onDeviceClick} | ||||
|         > | ||||
|             <div className={iconClasses} /> | ||||
|             <div className="mx_UserInfo_device_name">{deviceName}</div> | ||||
|             <div className="mx_UserInfo_device_trusted">{trustedLabel}</div> | ||||
|         </AccessibleButton> | ||||
|     ); | ||||
| 
 | ||||
| 
 | ||||
|     if (isVerified) { | ||||
|         return ( | ||||
|             <div className={classes} title={device.deviceId} > | ||||
|                 <div className={iconClasses} /> | ||||
|                 <div className="mx_UserInfo_device_name">{deviceName}</div> | ||||
|                 <div className="mx_UserInfo_device_trusted">{trustedLabel}</div> | ||||
|             </div> | ||||
|         ); | ||||
|     } else { | ||||
|         return ( | ||||
|             <AccessibleButton | ||||
|                 className={classes} | ||||
|                 title={device.deviceId} | ||||
|                 onClick={onDeviceClick} | ||||
|             > | ||||
|                 <div className={iconClasses} /> | ||||
|                 <div className="mx_UserInfo_device_name">{deviceName}</div> | ||||
|                 <div className="mx_UserInfo_device_trusted">{trustedLabel}</div> | ||||
|             </AccessibleButton> | ||||
|         ); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| function DevicesSection({devices, userId, loading}) { | ||||
|  |  | |||
|  | @ -23,6 +23,7 @@ import {RIGHT_PANEL_PHASES} from "./stores/RightPanelStorePhases"; | |||
| import {findDMForUser} from './createRoom'; | ||||
| import {accessSecretStorage} from './CrossSigningManager'; | ||||
| import SettingsStore from './settings/SettingsStore'; | ||||
| import NewSessionReviewDialog from './components/views/dialogs/NewSessionReviewDialog'; | ||||
| import {verificationMethods} from 'matrix-js-sdk/src/crypto'; | ||||
| 
 | ||||
| async function enable4SIfNeeded() { | ||||
|  | @ -68,33 +69,41 @@ export async function verifyDevice(user, device) { | |||
|             return; | ||||
|         } | ||||
|     } | ||||
|     Modal.createTrackedDialog("Verification warning", "unverified session", UntrustedDeviceDialog, { | ||||
|         user, | ||||
|         device, | ||||
|         onFinished: async (action) => { | ||||
|             if (action === "sas") { | ||||
|                 const verificationRequestPromise = cli.legacyDeviceVerification( | ||||
|                     user.userId, | ||||
|                     device.deviceId, | ||||
|                     verificationMethods.SAS, | ||||
|                 ); | ||||
|                 dis.dispatch({ | ||||
|                     action: "set_right_panel_phase", | ||||
|                     phase: RIGHT_PANEL_PHASES.EncryptionPanel, | ||||
|                     refireParams: {member: user, verificationRequestPromise}, | ||||
|                 }); | ||||
|             } else if (action === "legacy") { | ||||
|                 const ManualDeviceKeyVerificationDialog = sdk.getComponent("dialogs.ManualDeviceKeyVerificationDialog"); | ||||
|                 Modal.createTrackedDialog("Legacy verify session", "legacy verify session", | ||||
|                     ManualDeviceKeyVerificationDialog, | ||||
|                     { | ||||
|                         userId: user.userId, | ||||
|                         device, | ||||
|                     }, | ||||
|                 ); | ||||
|             } | ||||
|         }, | ||||
|     }); | ||||
| 
 | ||||
|     if (user.userId === cli.getUserId()) { | ||||
|         Modal.createTrackedDialog('New Session Review', 'Starting dialog', NewSessionReviewDialog, { | ||||
|             userId: user.userId, | ||||
|             device, | ||||
|         }); | ||||
|     } else { | ||||
|         Modal.createTrackedDialog("Verification warning", "unverified session", UntrustedDeviceDialog, { | ||||
|             user, | ||||
|             device, | ||||
|             onFinished: async (action) => { | ||||
|                 if (action === "sas") { | ||||
|                     const verificationRequestPromise = cli.legacyDeviceVerification( | ||||
|                         user.userId, | ||||
|                         device.deviceId, | ||||
|                         verificationMethods.SAS, | ||||
|                     ); | ||||
|                     dis.dispatch({ | ||||
|                         action: "set_right_panel_phase", | ||||
|                         phase: RIGHT_PANEL_PHASES.EncryptionPanel, | ||||
|                         refireParams: {member: user, verificationRequestPromise}, | ||||
|                     }); | ||||
|                 } else if (action === "legacy") { | ||||
|                     const ManualDeviceKeyVerificationDialog = sdk.getComponent("dialogs.ManualDeviceKeyVerificationDialog"); | ||||
|                     Modal.createTrackedDialog("Legacy verify session", "legacy verify session", | ||||
|                         ManualDeviceKeyVerificationDialog, | ||||
|                         { | ||||
|                             userId: user.userId, | ||||
|                             device, | ||||
|                         }, | ||||
|                     ); | ||||
|                 } | ||||
|             }, | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| export async function legacyVerifyUser(user) { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 David Baker
						David Baker