Merge pull request #3473 from matrix-org/jryans/rm-id-server-reg-and-reset
Remove id_server param from threepid_credspull/21833/head
						commit
						17e42eacd4
					
				|  | @ -1,5 +1,6 @@ | |||
| /* | ||||
| Copyright 2015, 2016 OpenMarket Ltd | ||||
| Copyright 2019 The Matrix.org Foundation C.I.C. | ||||
| 
 | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
|  | @ -72,15 +73,21 @@ class PasswordReset { | |||
|      * with a "message" property which contains a human-readable message detailing why | ||||
|      * the reset failed, e.g. "There is no mapped matrix user ID for the given email address". | ||||
|      */ | ||||
|     checkEmailLinkClicked() { | ||||
|         return this.client.setPassword({ | ||||
|             type: "m.login.email.identity", | ||||
|             threepid_creds: { | ||||
|                 sid: this.sessionId, | ||||
|                 client_secret: this.clientSecret, | ||||
|                 id_server: this.identityServerDomain, | ||||
|             }, | ||||
|         }, this.password).catch(function(err) { | ||||
|     async checkEmailLinkClicked() { | ||||
|         const creds = { | ||||
|             sid: this.sessionId, | ||||
|             client_secret: this.clientSecret, | ||||
|         }; | ||||
|         if (await this.doesServerRequireIdServerParam()) { | ||||
|             creds.id_server = this.identityServerDomain; | ||||
|         } | ||||
| 
 | ||||
|         try { | ||||
|             await this.client.setPassword({ | ||||
|                 type: "m.login.email.identity", | ||||
|                 threepid_creds: creds, | ||||
|             }, this.password); | ||||
|         } catch (err) { | ||||
|             if (err.httpStatus === 401) { | ||||
|                 err.message = _t('Failed to verify email address: make sure you clicked the link in the email'); | ||||
|             } else if (err.httpStatus === 404) { | ||||
|  | @ -90,7 +97,7 @@ class PasswordReset { | |||
|                 err.message += ` (Status ${err.httpStatus})`; | ||||
|             } | ||||
|             throw err; | ||||
|         }); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -117,17 +117,18 @@ module.exports = createReactClass({ | |||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     onVerify: function(ev) { | ||||
|     onVerify: async function(ev) { | ||||
|         ev.preventDefault(); | ||||
|         if (!this.reset) { | ||||
|             console.error("onVerify called before submitPasswordReset!"); | ||||
|             return; | ||||
|         } | ||||
|         this.reset.checkEmailLinkClicked().done((res) => { | ||||
|         try { | ||||
|             await this.reset.checkEmailLinkClicked(); | ||||
|             this.setState({ phase: PHASE_DONE }); | ||||
|         }, (err) => { | ||||
|         } catch (err) { | ||||
|             this.showErrorDialog(err.message); | ||||
|         }); | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     onSubmitForm: async function(ev) { | ||||
|  |  | |||
|  | @ -453,45 +453,45 @@ export const MsisdnAuthEntry = createReactClass({ | |||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     _onFormSubmit: function(e) { | ||||
|     _onFormSubmit: async function(e) { | ||||
|         e.preventDefault(); | ||||
|         if (this.state.token == '') return; | ||||
| 
 | ||||
|             this.setState({ | ||||
|                 errorText: null, | ||||
|             }); | ||||
|         this.setState({ | ||||
|             errorText: null, | ||||
|         }); | ||||
| 
 | ||||
|         this.props.matrixClient.submitMsisdnToken( | ||||
|             this._sid, this.props.clientSecret, this.state.token, | ||||
|         ).then((result) => { | ||||
|         try { | ||||
|             const result = await this.props.matrixClient.submitMsisdnToken( | ||||
|                 this._sid, this.props.clientSecret, this.state.token, | ||||
|             ); | ||||
|             if (result.success) { | ||||
|                 const idServerParsedUrl = url.parse( | ||||
|                     this.props.matrixClient.getIdentityServerUrl(), | ||||
|                 ); | ||||
|                 const creds = { | ||||
|                     sid: this._sid, | ||||
|                     client_secret: this.props.clientSecret, | ||||
|                 }; | ||||
|                 if (await this.props.matrixClient.doesServerRequireIdServerParam()) { | ||||
|                     const idServerParsedUrl = url.parse( | ||||
|                         this.props.matrixClient.getIdentityServerUrl(), | ||||
|                     ); | ||||
|                     creds.id_server = idServerParsedUrl.host; | ||||
|                 } | ||||
|                 this.props.submitAuthDict({ | ||||
|                     type: MsisdnAuthEntry.LOGIN_TYPE, | ||||
|                     // TODO: Remove `threepid_creds` once servers support proper UIA
 | ||||
|                     // See https://github.com/vector-im/riot-web/issues/10312
 | ||||
|                     threepid_creds: { | ||||
|                         sid: this._sid, | ||||
|                         client_secret: this.props.clientSecret, | ||||
|                         id_server: idServerParsedUrl.host, | ||||
|                     }, | ||||
|                     threepidCreds: { | ||||
|                         sid: this._sid, | ||||
|                         client_secret: this.props.clientSecret, | ||||
|                         id_server: idServerParsedUrl.host, | ||||
|                     }, | ||||
|                     threepid_creds: creds, | ||||
|                     threepidCreds: creds, | ||||
|                 }); | ||||
|             } else { | ||||
|                 this.setState({ | ||||
|                     errorText: _t("Token incorrect"), | ||||
|                 }); | ||||
|             } | ||||
|         }).catch((e) => { | ||||
|         } catch (e) { | ||||
|             this.props.fail(e); | ||||
|             console.log("Failed to submit msisdn token"); | ||||
|         }).done(); | ||||
|         } | ||||
|     }, | ||||
| 
 | ||||
|     render: function() { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 J. Ryan Stinnett
						J. Ryan Stinnett