diff --git a/src/components/structures/RoomView.js b/src/components/structures/RoomView.js index 4778f1a76a..50fa18e075 100644 --- a/src/components/structures/RoomView.js +++ b/src/components/structures/RoomView.js @@ -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() diff --git a/src/components/views/dialogs/DeviceVerifyDialog.js b/src/components/views/dialogs/DeviceVerifyDialog.js index d0643a60c4..47ee73c61c 100644 --- a/src/components/views/dialogs/DeviceVerifyDialog.js +++ b/src/components/views/dialogs/DeviceVerifyDialog.js @@ -22,7 +22,6 @@ import MatrixClientPeg from '../../../MatrixClientPeg'; import sdk from '../../../index'; import * as FormattingUtils from '../../../utils/FormattingUtils'; import { _t } from '../../../languageHandler'; -import SettingsStore from '../../../settings/SettingsStore'; import {verificationMethods} from 'matrix-js-sdk/lib/crypto'; const MODE_LEGACY = 'legacy'; @@ -48,7 +47,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, }; } diff --git a/src/components/views/dialogs/LogoutDialog.js b/src/components/views/dialogs/LogoutDialog.js index 1f81472cc0..16b92af1c8 100644 --- a/src/components/views/dialogs/LogoutDialog.js +++ b/src/components/views/dialogs/LogoutDialog.js @@ -20,7 +20,6 @@ import sdk from '../../../index'; import dis from '../../../dispatcher'; import { _t } from '../../../languageHandler'; import MatrixClientPeg from '../../../MatrixClientPeg'; -import SettingsStore from "../../../settings/SettingsStore"; export default class LogoutDialog extends React.Component { constructor() { @@ -79,86 +78,59 @@ export default class LogoutDialog extends React.Component { } render() { - let description; - if (SettingsStore.isFeatureEnabled("feature_keybackup")) { - description =
-

{_t( - "When you log out, you'll lose your secure message history. To prevent " + - "this, set up a recovery method.", - )}

-

{_t( - "Alternatively, advanced users can also manually export encryption keys in " + - "Settings before logging out.", {}, - { - a: sub => {sub}, - }, - )}

-
; - } else { - description =
{_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.", - )}
; - } + const description =
+

{_t( + "When you log out, you'll lose your secure message history. To prevent " + + "this, set up a recovery method.", + )}

+

{_t( + "Alternatively, advanced users can also manually export encryption keys in " + + "Settings before logging out.", {}, + { + a: sub => {sub}, + }, + )}

+
; - 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 ( +
+ { description } +
+ -
- { description } -
- - - -
); - } else { - const QuestionDialog = sdk.getComponent('views.dialogs.QuestionDialog'); - return (); - } + + + ); } else { const QuestionDialog = sdk.getComponent('views.dialogs.QuestionDialog'); return ( - { _t("Export E2E room keys") } - ), - ]} onFinished={this._onFinished} />); } diff --git a/src/components/views/settings/tabs/SecuritySettingsTab.js b/src/components/views/settings/tabs/SecuritySettingsTab.js index a2a30a2190..b64313e082 100644 --- a/src/components/views/settings/tabs/SecuritySettingsTab.js +++ b/src/components/views/settings/tabs/SecuritySettingsTab.js @@ -17,7 +17,7 @@ limitations under the License. import React from 'react'; import PropTypes from 'prop-types'; import {_t} from "../../../../languageHandler"; -import SettingsStore, {SettingLevel} from "../../../../settings/SettingsStore"; +import {SettingLevel} from "../../../../settings/SettingsStore"; import MatrixClientPeg from "../../../../MatrixClientPeg"; import * as FormattingUtils from "../../../../utils/FormattingUtils"; import AccessibleButton from "../../elements/AccessibleButton"; @@ -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 = ( -
- {_t("Key backup")} -
- -
+ const KeyBackupPanel = sdk.getComponent('views.settings.KeyBackupPanel'); + const keyBackup = ( +
+ {_t("Key backup")} +
+
- ); - } +
+ ); return (
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 776a7176fd..edc93b79f6 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -271,9 +271,7 @@ "Message Pinning": "Message Pinning", "Custom user status messages": "Custom user status messages", "Group & filter rooms by custom tags (refresh to apply changes)": "Group & filter rooms by custom tags (refresh to apply changes)", - "Backup of encryption keys to server": "Backup of encryption keys to server", "Render simple counters in room header": "Render simple counters in room header", - "Two-way device verification using short text": "Two-way device verification using short text", "Enable Emoji suggestions while typing": "Enable Emoji suggestions while typing", "Use compact timeline layout": "Use compact timeline layout", "Show a placeholder for removed messages": "Show a placeholder for removed messages", @@ -372,7 +370,7 @@ "Robot": "Robot", "Hat": "Hat", "Glasses": "Glasses", - "Wrench": "Wrench", + "Spanner": "Spanner", "Santa": "Santa", "Thumbs up": "Thumbs up", "Umbrella": "Umbrella", @@ -1105,7 +1103,6 @@ "Updating Riot": "Updating Riot", "When you log out, you'll lose your secure message history. To prevent this, set up a recovery method.": "When you log out, you'll lose your secure message history. To prevent this, set up a recovery method.", "Alternatively, advanced users can also manually export encryption keys in Settings before logging out.": "Alternatively, advanced users can also manually export encryption keys in Settings before logging out.", - "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.": "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.", "Set a Recovery Method": "Set a Recovery Method", "I understand, log out without": "I understand, log out without", "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).": "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).", diff --git a/src/settings/Settings.js b/src/settings/Settings.js index 02c2bad14b..9dfbc7d51e 100644 --- a/src/settings/Settings.js +++ b/src/settings/Settings.js @@ -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'),