fix the warning shown to users about needing to export e2e keys

apparently when we added the buttons to export e2e keys to the Logout button, we didn't change the text warning the user that e2e export was coming soon.  likewise when changing password and forgetting password (where we didn't even have a button to export keys)
This commit is contained in:
Matthew Hodgson 2017-04-07 23:34:11 +01:00
parent 88c04344b0
commit 6dbb4e9002
3 changed files with 46 additions and 10 deletions

View file

@ -264,10 +264,10 @@ module.exports = React.createClass({
title: "Sign out?", title: "Sign out?",
description: description:
<div> <div>
For security, logging out will delete any end-to-end encryption keys from this browser, For security, logging out will delete any end-to-end encryption keys from this browser.
making previous encrypted chat history unreadable if you log back in.
In future this <a href="https://github.com/vector-im/riot-web/issues/2108">will be improved</a>, If you want to be able to decrypt your conversation history from future Riot sessions,
but for now be warned. please export your room keys for safe-keeping.
</div>, </div>,
button: "Sign out", button: "Sign out",
extraButtons: [ extraButtons: [

View file

@ -93,11 +93,17 @@ module.exports = React.createClass({
description: description:
<div> <div>
Resetting password will currently reset any end-to-end encryption keys on all devices, Resetting password will currently reset any end-to-end encryption keys on all devices,
making encrypted chat history unreadable. making encrypted chat history unreadable, unless you first export your room keys
In future this <a href="https://github.com/vector-im/riot-web/issues/2671">may be improved</a>, and re-import them afterwards.
but for now be warned. In future this <a href="https://github.com/vector-im/riot-web/issues/2671">will be improved</a>.
</div>, </div>,
button: "Continue", button: "Continue",
extraButtons: [
<button className="mx_Dialog_primary"
onClick={this._onExportE2eKeysClicked}>
Export E2E room keys
</button>
],
onFinished: (confirmed) => { onFinished: (confirmed) => {
if (confirmed) { if (confirmed) {
this.submitPasswordReset( this.submitPasswordReset(
@ -110,6 +116,18 @@ module.exports = React.createClass({
} }
}, },
_onExportE2eKeysClicked: function() {
Modal.createDialogAsync(
(cb) => {
require.ensure(['../../../async-components/views/dialogs/ExportE2eKeysDialog'], () => {
cb(require('../../../async-components/views/dialogs/ExportE2eKeysDialog'));
}, "e2e-export");
}, {
matrixClient: MatrixClientPeg.get(),
}
);
},
onInputChanged: function(stateKey, ev) { onInputChanged: function(stateKey, ev) {
this.setState({ this.setState({
[stateKey]: ev.target.value [stateKey]: ev.target.value

View file

@ -73,11 +73,17 @@ module.exports = React.createClass({
description: description:
<div> <div>
Changing password will currently reset any end-to-end encryption keys on all devices, Changing password will currently reset any end-to-end encryption keys on all devices,
making encrypted chat history unreadable. making encrypted chat history unreadable, unless you first export your room keys
This will be <a href="https://github.com/vector-im/riot-web/issues/2671">improved shortly</a>, and re-import them afterwards.
but for now be warned. In future this <a href="https://github.com/vector-im/riot-web/issues/2671">will be improved</a>.
</div>, </div>,
button: "Continue", button: "Continue",
extraButtons: [
<button className="mx_Dialog_primary"
onClick={this._onExportE2eKeysClicked}>
Export E2E room keys
</button>
],
onFinished: (confirmed) => { onFinished: (confirmed) => {
if (confirmed) { if (confirmed) {
var authDict = { var authDict = {
@ -105,6 +111,18 @@ module.exports = React.createClass({
}); });
}, },
_onExportE2eKeysClicked: function() {
Modal.createDialogAsync(
(cb) => {
require.ensure(['../../../async-components/views/dialogs/ExportE2eKeysDialog'], () => {
cb(require('../../../async-components/views/dialogs/ExportE2eKeysDialog'));
}, "e2e-export");
}, {
matrixClient: MatrixClientPeg.get(),
}
);
},
onClickChange: function() { onClickChange: function() {
var old_password = this.refs.old_input.value; var old_password = this.refs.old_input.value;
var new_password = this.refs.new_input.value; var new_password = this.refs.new_input.value;