Make captcha work again with the new registration logic.
parent
d821755b49
commit
04fbda46dd
|
@ -133,6 +133,7 @@ class RegisterRestServlet(RestServlet):
|
|||
logger.debug("Removing session %s", session)
|
||||
self.sessions.pop(session["id"])
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def _do_recaptcha(self, request, register_json, session):
|
||||
if not self.hs.config.enable_registration_captcha:
|
||||
raise SynapseError(400, "Captcha not required.")
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue