diff --git a/src/components/structures/login/ForgotPassword.js b/src/components/structures/login/ForgotPassword.js
index 5037136b1d..2c10052b98 100644
--- a/src/components/structures/login/ForgotPassword.js
+++ b/src/components/structures/login/ForgotPassword.js
@@ -87,10 +87,26 @@ module.exports = React.createClass({
this.showErrorDialog("New passwords must match each other.");
}
else {
- this.submitPasswordReset(
- this.state.enteredHomeserverUrl, this.state.enteredIdentityServerUrl,
- this.state.email, this.state.password
- );
+ var QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
+ Modal.createDialog(QuestionDialog, {
+ title: "Warning",
+ description:
+
+ Resetting password will currently reset any end-to-end encryption keys on all devices,
+ making encrypted chat history unreadable.
+ In future this
may be improved,
+ but for now be warned.
+
,
+ button: "Continue",
+ onFinished: (confirmed) => {
+ if (confirmed) {
+ this.submitPasswordReset(
+ this.state.enteredHomeserverUrl, this.state.enteredIdentityServerUrl,
+ this.state.email, this.state.password
+ );
+ }
+ },
+ });
}
},
diff --git a/src/components/views/settings/ChangePassword.js b/src/components/views/settings/ChangePassword.js
index a011d5262e..8a3c46bcfd 100644
--- a/src/components/views/settings/ChangePassword.js
+++ b/src/components/views/settings/ChangePassword.js
@@ -18,6 +18,7 @@ limitations under the License.
var React = require('react');
var MatrixClientPeg = require("../../../MatrixClientPeg");
+var Modal = require("../../../Modal");
var sdk = require("../../../index");
module.exports = React.createClass({
@@ -65,26 +66,42 @@ module.exports = React.createClass({
changePassword: function(old_password, new_password) {
var cli = MatrixClientPeg.get();
- var authDict = {
- type: 'm.login.password',
- user: cli.credentials.userId,
- password: old_password
- };
+ var QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
+ Modal.createDialog(QuestionDialog, {
+ title: "Warning",
+ description:
+
+ Changing password will currently reset any end-to-end encryption keys on all devices,
+ making encrypted chat history unreadable.
+ This will be
improved shortly,
+ but for now be warned.
+
,
+ button: "Continue",
+ onFinished: (confirmed) => {
+ if (confirmed) {
+ var authDict = {
+ type: 'm.login.password',
+ user: cli.credentials.userId,
+ password: old_password
+ };
- this.setState({
- phase: this.Phases.Uploading
+ this.setState({
+ phase: this.Phases.Uploading
+ });
+
+ var self = this;
+ cli.setPassword(authDict, new_password).then(function() {
+ self.props.onFinished();
+ }, function(err) {
+ self.props.onError(err);
+ }).finally(function() {
+ self.setState({
+ phase: self.Phases.Edit
+ });
+ }).done();
+ }
+ },
});
-
- var self = this;
- cli.setPassword(authDict, new_password).then(function() {
- self.props.onFinished();
- }, function(err) {
- self.props.onError(err);
- }).finally(function() {
- self.setState({
- phase: self.Phases.Edit
- });
- }).done();
},
onClickChange: function() {