Merge pull request #3319 from matrix-org/dbkr/allow_pw_reset_no_is

Allow password reset without an ID Server
This commit is contained in:
David Baker 2019-08-19 11:41:38 +01:00 committed by GitHub
commit cd26b73386
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 3 deletions

View file

@ -36,7 +36,11 @@ class PasswordReset {
idBaseUrl: identityUrl, idBaseUrl: identityUrl,
}); });
this.clientSecret = this.client.generateClientSecret(); this.clientSecret = this.client.generateClientSecret();
this.identityServerDomain = identityUrl.split("://")[1]; this.identityServerDomain = identityUrl ? identityUrl.split("://")[1] : null;
}
doesServerRequireIdServerParam() {
return this.client.doesServerRequireIdServerParam();
} }
/** /**

View file

@ -62,10 +62,12 @@ module.exports = React.createClass({
serverIsAlive: true, serverIsAlive: true,
serverErrorIsFatal: false, serverErrorIsFatal: false,
serverDeadError: "", serverDeadError: "",
serverRequiresIdServer: null,
}; };
}, },
componentWillMount: function() { componentWillMount: function() {
this.reset = null;
this._checkServerLiveliness(this.props.serverConfig); this._checkServerLiveliness(this.props.serverConfig);
}, },
@ -83,7 +85,14 @@ module.exports = React.createClass({
serverConfig.hsUrl, serverConfig.hsUrl,
serverConfig.isUrl, serverConfig.isUrl,
); );
this.setState({serverIsAlive: true});
const pwReset = new PasswordReset(serverConfig.hsUrl, serverConfig.isUrl);
const serverRequiresIdServer = await pwReset.doesServerRequireIdServerParam();
this.setState({
serverIsAlive: true,
serverRequiresIdServer,
});
} catch (e) { } catch (e) {
this.setState(AutoDiscoveryUtils.authComponentStateForError(e, "forgot_password")); this.setState(AutoDiscoveryUtils.authComponentStateForError(e, "forgot_password"));
} }
@ -256,7 +265,7 @@ module.exports = React.createClass({
</a>; </a>;
} }
if (!this.props.serverConfig.isUrl) { if (!this.props.serverConfig.isUrl && this.state.serverRequiresIdServer) {
return <div> return <div>
<h3> <h3>
{yourMatrixAccountText} {yourMatrixAccountText}