Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Fix: Unable to verify email address error #3528

Merged
merged 6 commits into from
Oct 8, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions src/AddThreepid.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ import MatrixClientPeg from './MatrixClientPeg';
import { _t } from './languageHandler';
import IdentityAuthClient from './IdentityAuthClient';

function getIdServerDomain() {
return MatrixClientPeg.get().idBaseUrl.split("://")[1];
}

/**
* Allows a user to add a third party identifier to their homeserver and,
* optionally, the identity servers.
Expand Down Expand Up @@ -155,7 +159,6 @@ export default class AddThreepid {
* the request failed.
*/
async checkEmailLinkClicked() {
const identityServerDomain = MatrixClientPeg.get().idBaseUrl.split("://")[1];
jryans marked this conversation as resolved.
Show resolved Hide resolved
try {
if (await MatrixClientPeg.get().doesServerSupportSeparateAddAndBind()) {
if (this.bind) {
Expand All @@ -164,7 +167,7 @@ export default class AddThreepid {
await MatrixClientPeg.get().bindThreePid({
sid: this.sessionId,
client_secret: this.clientSecret,
id_server: identityServerDomain,
id_server: getIdServerDomain(),
id_access_token: identityAccessToken,
});
} else {
Expand All @@ -177,7 +180,7 @@ export default class AddThreepid {
await MatrixClientPeg.get().addThreePid({
sid: this.sessionId,
client_secret: this.clientSecret,
id_server: identityServerDomain,
id_server: getIdServerDomain(),
}, this.bind);
}
} catch (err) {
Expand Down Expand Up @@ -221,13 +224,12 @@ export default class AddThreepid {
throw result;
}

const identityServerDomain = MatrixClientPeg.get().idBaseUrl.split("://")[1];
if (await MatrixClientPeg.get().doesServerSupportSeparateAddAndBind()) {
if (this.bind) {
await MatrixClientPeg.get().bindThreePid({
sid: this.sessionId,
client_secret: this.clientSecret,
id_server: identityServerDomain,
id_server: getIdServerDomain(),
id_access_token: await authClient.getAccessToken(),
});
} else {
Expand All @@ -240,7 +242,7 @@ export default class AddThreepid {
await MatrixClientPeg.get().addThreePid({
sid: this.sessionId,
client_secret: this.clientSecret,
id_server: identityServerDomain,
id_server: getIdServerDomain(),
}, this.bind);
}
}
Expand Down
10 changes: 8 additions & 2 deletions src/components/views/settings/account/EmailAddresses.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,14 @@ export default class EmailAddresses extends React.Component {
this.props.onEmailsChange(emails);
}).catch((err) => {
this.setState({continueDisabled: false});
if (err.errcode !== 'M_THREEPID_AUTH_FAILED') {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
if (err.errcode === 'M_THREEPID_AUTH_FAILED') {
jryans marked this conversation as resolved.
Show resolved Hide resolved
Modal.createTrackedDialog("Email hasn't been verified yet", "", ErrorDialog, {
title: _t("Your email address hasn't been verified yet"),
description: _t("Click the link in the email you received to verify " +
"and then click continue again."),
});
} else {
console.error("Unable to verify email address: " + err);
Modal.createTrackedDialog('Unable to verify email address', '', ErrorDialog, {
title: _t("Unable to verify email address."),
Expand Down
10 changes: 8 additions & 2 deletions src/components/views/settings/discovery/EmailAddresses.js
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,14 @@ export class EmailAddress extends React.Component {
});
} catch (err) {
this.setState({ continueDisabled: false });
if (err.errcode !== 'M_THREEPID_AUTH_FAILED') {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
if (err.errcode === 'M_THREEPID_AUTH_FAILED') {
Modal.createTrackedDialog("E-mail hasn't been verified yet", "", ErrorDialog, {
title: _t("Your email address hasn't been verified yet"),
description: _t("Click the link in the email you received to verify " +
"and then click continue again."),
});
} else {
console.error("Unable to verify email address: " + err);
Modal.createTrackedDialog('Unable to verify email address', '', ErrorDialog, {
title: _t("Unable to verify email address."),
Expand Down
2 changes: 2 additions & 0 deletions src/i18n/strings/en_EN.json
Original file line number Diff line number Diff line change
Expand Up @@ -740,6 +740,8 @@
"Who can read history?": "Who can read history?",
"Unable to revoke sharing for email address": "Unable to revoke sharing for email address",
"Unable to share email address": "Unable to share email address",
"Your email address hasn't been verified yet": "Your email address hasn't been verified yet",
"Click the link in the email you received to verify and then click continue again.": "Click the link in the email you received to verify and then click continue again.",
"Unable to verify email address.": "Unable to verify email address.",
"Verify the link in your inbox": "Verify the link in your inbox",
"Complete": "Complete",
Expand Down