mirror of https://github.com/vector-im/riot-web
				
				
				
			Remove key backup & sas from labs
							parent
							
								
									2cd25e0077
								
							
						
					
					
						commit
						043f1ab3f0
					
				| 
						 | 
				
			
			@ -1635,7 +1635,6 @@ module.exports = React.createClass({
 | 
			
		|||
        );
 | 
			
		||||
 | 
			
		||||
        const showRoomRecoveryReminder = (
 | 
			
		||||
            SettingsStore.isFeatureEnabled("feature_keybackup") &&
 | 
			
		||||
            SettingsStore.getValue("showRoomRecoveryReminder") &&
 | 
			
		||||
            MatrixClientPeg.get().isRoomEncrypted(this.state.room.roomId) &&
 | 
			
		||||
            !MatrixClientPeg.get().getKeyBackupEnabled()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,7 +48,7 @@ export default class DeviceVerifyDialog extends React.Component {
 | 
			
		|||
        this._showSasEvent = null;
 | 
			
		||||
        this.state = {
 | 
			
		||||
            phase: PHASE_START,
 | 
			
		||||
            mode: SettingsStore.isFeatureEnabled("feature_sas") ? MODE_SAS : MODE_LEGACY,
 | 
			
		||||
            mode: MODE_SAS,
 | 
			
		||||
            sasVerified: false,
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,86 +79,59 @@ export default class LogoutDialog extends React.Component {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    render() {
 | 
			
		||||
        let description;
 | 
			
		||||
        if (SettingsStore.isFeatureEnabled("feature_keybackup")) {
 | 
			
		||||
            description = <div>
 | 
			
		||||
                <p>{_t(
 | 
			
		||||
                    "When you log out, you'll lose your secure message history. To prevent " +
 | 
			
		||||
                    "this, set up a recovery method.",
 | 
			
		||||
                )}</p>
 | 
			
		||||
                <p>{_t(
 | 
			
		||||
                    "Alternatively, advanced users can also manually export encryption keys in " +
 | 
			
		||||
                    "<a>Settings</a> before logging out.", {},
 | 
			
		||||
                    {
 | 
			
		||||
                        a: sub => <a href='#/settings' onClick={this._onSettingsLinkClick}>{sub}</a>,
 | 
			
		||||
                    },
 | 
			
		||||
                )}</p>
 | 
			
		||||
            </div>;
 | 
			
		||||
        } else {
 | 
			
		||||
            description = <div>{_t(
 | 
			
		||||
                "For security, logging out will delete any end-to-end " +
 | 
			
		||||
                "encryption keys from this browser. If you want to be able " +
 | 
			
		||||
                "to decrypt your conversation history from future Riot sessions, " +
 | 
			
		||||
                "please export your room keys for safe-keeping.",
 | 
			
		||||
            )}</div>;
 | 
			
		||||
        }
 | 
			
		||||
        const description = <div>
 | 
			
		||||
            <p>{_t(
 | 
			
		||||
                "When you log out, you'll lose your secure message history. To prevent " +
 | 
			
		||||
                "this, set up a recovery method.",
 | 
			
		||||
            )}</p>
 | 
			
		||||
            <p>{_t(
 | 
			
		||||
                "Alternatively, advanced users can also manually export encryption keys in " +
 | 
			
		||||
                "<a>Settings</a> before logging out.", {},
 | 
			
		||||
                {
 | 
			
		||||
                    a: sub => <a href='#/settings' onClick={this._onSettingsLinkClick}>{sub}</a>,
 | 
			
		||||
                },
 | 
			
		||||
            )}</p>
 | 
			
		||||
        </div>;
 | 
			
		||||
 | 
			
		||||
        if (SettingsStore.isFeatureEnabled("feature_keybackup")) {
 | 
			
		||||
            if (!MatrixClientPeg.get().getKeyBackupEnabled()) {
 | 
			
		||||
                const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
 | 
			
		||||
                const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
 | 
			
		||||
                // Not quite a standard question dialog as the primary button cancels
 | 
			
		||||
                // the action and does something else instead, whilst non-default button
 | 
			
		||||
                // confirms the action.
 | 
			
		||||
                return (<BaseDialog
 | 
			
		||||
                    title={_t("Warning!")}
 | 
			
		||||
                    contentId='mx_Dialog_content'
 | 
			
		||||
        if (!MatrixClientPeg.get().getKeyBackupEnabled()) {
 | 
			
		||||
            const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
 | 
			
		||||
            const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
 | 
			
		||||
            // Not quite a standard question dialog as the primary button cancels
 | 
			
		||||
            // the action and does something else instead, whilst non-default button
 | 
			
		||||
            // confirms the action.
 | 
			
		||||
            return (<BaseDialog
 | 
			
		||||
                title={_t("Warning!")}
 | 
			
		||||
                contentId='mx_Dialog_content'
 | 
			
		||||
                hasCancel={false}
 | 
			
		||||
                onFinsihed={this._onFinished}
 | 
			
		||||
            >
 | 
			
		||||
                <div className="mx_Dialog_content" id='mx_Dialog_content'>
 | 
			
		||||
                    { description }
 | 
			
		||||
                </div>
 | 
			
		||||
                <DialogButtons primaryButton={_t('Set a Recovery Method')}
 | 
			
		||||
                    hasCancel={false}
 | 
			
		||||
                    onFinsihed={this._onFinished}
 | 
			
		||||
                    onPrimaryButtonClick={this._onSetRecoveryMethodClick}
 | 
			
		||||
                    focus={true}
 | 
			
		||||
                >
 | 
			
		||||
                    <div className="mx_Dialog_content" id='mx_Dialog_content'>
 | 
			
		||||
                        { description }
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <DialogButtons primaryButton={_t('Set a Recovery Method')}
 | 
			
		||||
                        hasCancel={false}
 | 
			
		||||
                        onPrimaryButtonClick={this._onSetRecoveryMethodClick}
 | 
			
		||||
                        focus={true}
 | 
			
		||||
                    >
 | 
			
		||||
                        <button onClick={this._onLogoutConfirm}>
 | 
			
		||||
                            {_t("I understand, log out without")}
 | 
			
		||||
                        </button>
 | 
			
		||||
                    </DialogButtons>
 | 
			
		||||
                </BaseDialog>);
 | 
			
		||||
            } else {
 | 
			
		||||
                const QuestionDialog = sdk.getComponent('views.dialogs.QuestionDialog');
 | 
			
		||||
                return (<QuestionDialog
 | 
			
		||||
                    hasCancelButton={true}
 | 
			
		||||
                    title={_t("Sign out")}
 | 
			
		||||
                    // TODO: This is made up by me and would need to also mention verifying
 | 
			
		||||
                    // once you can restorew a backup by verifying a device
 | 
			
		||||
                    description={_t(
 | 
			
		||||
                        "When signing in again, you can access encrypted chat history by " +
 | 
			
		||||
                        "restoring your key backup. You'll need your recovery passphrase " +
 | 
			
		||||
                        "or, if you didn't set a recovery passphrase, your recovery key " +
 | 
			
		||||
                        "(that you downloaded).",
 | 
			
		||||
                    )}
 | 
			
		||||
                    button={_t("Sign out")}
 | 
			
		||||
                    onFinished={this._onFinished}
 | 
			
		||||
                />);
 | 
			
		||||
            }
 | 
			
		||||
                    <button onClick={this._onLogoutConfirm}>
 | 
			
		||||
                        {_t("I understand, log out without")}
 | 
			
		||||
                    </button>
 | 
			
		||||
                </DialogButtons>
 | 
			
		||||
            </BaseDialog>);
 | 
			
		||||
        } else {
 | 
			
		||||
            const QuestionDialog = sdk.getComponent('views.dialogs.QuestionDialog');
 | 
			
		||||
            return (<QuestionDialog
 | 
			
		||||
                hasCancelButton={true}
 | 
			
		||||
                title={_t("Sign out")}
 | 
			
		||||
                description={description}
 | 
			
		||||
                // TODO: This is made up by me and would need to also mention verifying
 | 
			
		||||
                // once you can restorew a backup by verifying a device
 | 
			
		||||
                description={_t(
 | 
			
		||||
                    "When signing in again, you can access encrypted chat history by " +
 | 
			
		||||
                    "restoring your key backup. You'll need your recovery passphrase " +
 | 
			
		||||
                    "or, if you didn't set a recovery passphrase, your recovery key " +
 | 
			
		||||
                    "(that you downloaded).",
 | 
			
		||||
                )}
 | 
			
		||||
                button={_t("Sign out")}
 | 
			
		||||
                extraButtons={[
 | 
			
		||||
                    (<button key="export" className="mx_Dialog_primary"
 | 
			
		||||
                            onClick={this._onExportE2eKeysClicked}>
 | 
			
		||||
                       { _t("Export E2E room keys") }
 | 
			
		||||
                    </button>),
 | 
			
		||||
                ]}
 | 
			
		||||
                onFinished={this._onFinished}
 | 
			
		||||
            />);
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -196,18 +196,15 @@ export default class SecuritySettingsTab extends React.Component {
 | 
			
		|||
        const DevicesPanel = sdk.getComponent('views.settings.DevicesPanel');
 | 
			
		||||
        const SettingsFlag = sdk.getComponent('views.elements.SettingsFlag');
 | 
			
		||||
 | 
			
		||||
        let keyBackup = null;
 | 
			
		||||
        if (SettingsStore.isFeatureEnabled("feature_keybackup")) {
 | 
			
		||||
            const KeyBackupPanel = sdk.getComponent('views.settings.KeyBackupPanel');
 | 
			
		||||
            keyBackup = (
 | 
			
		||||
                <div className='mx_SettingsTab_section'>
 | 
			
		||||
                    <span className="mx_SettingsTab_subheading">{_t("Key backup")}</span>
 | 
			
		||||
                    <div className='mx_SettingsTab_subsectionText'>
 | 
			
		||||
                        <KeyBackupPanel />
 | 
			
		||||
                    </div>
 | 
			
		||||
        const KeyBackupPanel = sdk.getComponent('views.settings.KeyBackupPanel');
 | 
			
		||||
        const keyBackup = (
 | 
			
		||||
            <div className='mx_SettingsTab_section'>
 | 
			
		||||
                <span className="mx_SettingsTab_subheading">{_t("Key backup")}</span>
 | 
			
		||||
                <div className='mx_SettingsTab_subsectionText'>
 | 
			
		||||
                    <KeyBackupPanel />
 | 
			
		||||
                </div>
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
            </div>
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        return (
 | 
			
		||||
            <div className="mx_SettingsTab mx_SecuritySettingsTab">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,24 +105,12 @@ export const SETTINGS = {
 | 
			
		|||
        supportedLevels: LEVELS_FEATURE,
 | 
			
		||||
        default: false,
 | 
			
		||||
    },
 | 
			
		||||
    "feature_keybackup": {
 | 
			
		||||
        isFeature: true,
 | 
			
		||||
        displayName: _td("Backup of encryption keys to server"),
 | 
			
		||||
        supportedLevels: LEVELS_FEATURE,
 | 
			
		||||
        default: false,
 | 
			
		||||
    },
 | 
			
		||||
    "feature_state_counters": {
 | 
			
		||||
        isFeature: true,
 | 
			
		||||
        displayName: _td("Render simple counters in room header"),
 | 
			
		||||
        supportedLevels: LEVELS_FEATURE,
 | 
			
		||||
        default: false,
 | 
			
		||||
    },
 | 
			
		||||
    "feature_sas": {
 | 
			
		||||
        isFeature: true,
 | 
			
		||||
        displayName: _td("Two-way device verification using short text"),
 | 
			
		||||
        supportedLevels: LEVELS_FEATURE,
 | 
			
		||||
        default: false,
 | 
			
		||||
    },
 | 
			
		||||
    "MessageComposerInput.suggestEmoji": {
 | 
			
		||||
        supportedLevels: LEVELS_ACCOUNT_SETTINGS,
 | 
			
		||||
        displayName: _td('Enable Emoji suggestions while typing'),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue