switch UnverifiedSessionToast to route to check sessions rather than verify the new login
given the chances are that the new login will be stuck doing initial sync, and won't be in position to be verified until its finished.
This commit is contained in:
parent
c73097a5b0
commit
96ebbad959
2 changed files with 24 additions and 24 deletions
|
@ -15,38 +15,36 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
import { _t } from '../languageHandler';
|
||||
import dis from "../dispatcher/dispatcher";
|
||||
import { MatrixClientPeg } from '../MatrixClientPeg';
|
||||
import Modal from '../Modal';
|
||||
import DeviceListener from '../DeviceListener';
|
||||
import NewSessionReviewDialog from '../components/views/dialogs/NewSessionReviewDialog';
|
||||
import ToastStore from "../stores/ToastStore";
|
||||
import GenericToast from "../components/views/toasts/GenericToast";
|
||||
import { Action } from "../dispatcher/actions";
|
||||
import { USER_SECURITY_TAB } from "../components/views/dialogs/UserSettingsDialog";
|
||||
|
||||
function toastKey(deviceId: string) {
|
||||
return "unverified_session_" + deviceId;
|
||||
}
|
||||
|
||||
export const showToast = (deviceId: string) => {
|
||||
export const showToast = async (deviceId: string) => {
|
||||
const cli = MatrixClientPeg.get();
|
||||
|
||||
const onAccept = () => {
|
||||
Modal.createTrackedDialog('New Session Review', 'Starting dialog', NewSessionReviewDialog, {
|
||||
userId: cli.getUserId(),
|
||||
device: cli.getStoredDevice(cli.getUserId(), deviceId),
|
||||
onFinished: (r) => {
|
||||
if (!r) {
|
||||
/* This'll come back false if the user clicks "this wasn't me" and saw a warning dialog */
|
||||
DeviceListener.sharedInstance().dismissUnverifiedSessions([deviceId]);
|
||||
}
|
||||
},
|
||||
}, null, /* priority = */ false, /* static = */ true);
|
||||
DeviceListener.sharedInstance().dismissUnverifiedSessions([deviceId]);
|
||||
dis.dispatch({
|
||||
action: Action.ViewUserSettings,
|
||||
initialTabId: USER_SECURITY_TAB,
|
||||
});
|
||||
};
|
||||
|
||||
const onReject = () => {
|
||||
DeviceListener.sharedInstance().dismissUnverifiedSessions([deviceId]);
|
||||
};
|
||||
|
||||
const device = cli.getStoredDevice(cli.getUserId(), deviceId);
|
||||
const device = await cli.getDevice(deviceId);
|
||||
|
||||
ToastStore.sharedInstance().addOrReplaceToast({
|
||||
key: toastKey(deviceId),
|
||||
|
@ -54,8 +52,13 @@ export const showToast = (deviceId: string) => {
|
|||
icon: "verification_warning",
|
||||
props: {
|
||||
description: _t(
|
||||
"Verify the new login accessing your account: %(name)s", { name: device.getDisplayName()}),
|
||||
acceptLabel: _t("Verify"),
|
||||
"A new login is accessing your account: %(name)s (%(deviceID)s) from %(IP)s", {
|
||||
name: device.display_name,
|
||||
deviceID: deviceId,
|
||||
IP: device.last_seen_ip,
|
||||
}
|
||||
),
|
||||
acceptLabel: _t("Check your devices"),
|
||||
onAccept,
|
||||
rejectLabel: _t("Later"),
|
||||
onReject,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue