diff options
author | Kegan Dougal <kegan@matrix.org> | 2014-09-15 14:52:39 +0100 |
---|---|---|
committer | Kegan Dougal <kegan@matrix.org> | 2014-09-15 14:52:39 +0100 |
commit | 04fbda46ddb722f64f9b0d702b41cc22569e9b12 (patch) | |
tree | f4f744e61e56bf54b427908375997154a9373d39 /webclient | |
parent | Updated webclient to support the new registration logic. (diff) | |
download | synapse-04fbda46ddb722f64f9b0d702b41cc22569e9b12.tar.xz |
Make captcha work again with the new registration logic.
Diffstat (limited to 'webclient')
-rw-r--r-- | webclient/components/matrix/matrix-service.js | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/webclient/components/matrix/matrix-service.js b/webclient/components/matrix/matrix-service.js index d7d278a7f6..35ebca961c 100644 --- a/webclient/components/matrix/matrix-service.js +++ b/webclient/components/matrix/matrix-service.js @@ -154,6 +154,13 @@ angular.module('matrixService', []) } if (!useCaptcha && regType == "m.login.recaptcha") { console.error("Web client setup to not use captcha, but HS demands a captcha."); + deferred.reject({ + data: { + errcode: "M_CAPTCHA_NEEDED", + error: "Home server requires a captcha." + } + }); + return; } } } @@ -183,7 +190,20 @@ angular.module('matrixService', []) deferred.resolve(response); } else if (response.data.next) { - return doRegisterLogin(path, response.data.next, sessionId, user_name, password, threepidCreds).then( + var nextType = response.data.next; + if (response.data.next instanceof Array) { + for (var i=0; i<response.data.next.length; i++) { + if (useThreePidFlow && response.data.next[i] == "m.login.email.identity") { + nextType = response.data.next[i]; + break; + } + else if (!useThreePidFlow && response.data.next[i] != "m.login.email.identity") { + nextType = response.data.next[i]; + break; + } + } + } + return doRegisterLogin(path, nextType, sessionId, user_name, password, threepidCreds).then( loginResponseFunc, function(err) { deferred.reject(err); |