Merge pull request #797 from matrix-org/matthew/fix-e2e-export-warnings

fix the warning shown to users about needing to export e2e keys
pull/21833/head
David Baker 2017-04-10 13:35:00 +01:00 committed by GitHub
commit 7578737deb
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;