Make captcha work again with the new registration logic.
This commit is contained in:
parent
d821755b49
commit
04fbda46dd
|
@ -133,6 +133,7 @@ class RegisterRestServlet(RestServlet):
|
||||||
logger.debug("Removing session %s", session)
|
logger.debug("Removing session %s", session)
|
||||||
self.sessions.pop(session["id"])
|
self.sessions.pop(session["id"])
|
||||||
|
|
||||||
|
@defer.inlineCallbacks
|
||||||
def _do_recaptcha(self, request, register_json, session):
|
def _do_recaptcha(self, request, register_json, session):
|
||||||
if not self.hs.config.enable_registration_captcha:
|
if not self.hs.config.enable_registration_captcha:
|
||||||
raise SynapseError(400, "Captcha not required.")
|
raise SynapseError(400, "Captcha not required.")
|
||||||
|
|
|
@ -154,6 +154,13 @@ angular.module('matrixService', [])
|
||||||
}
|
}
|
||||||
if (!useCaptcha && regType == "m.login.recaptcha") {
|
if (!useCaptcha && regType == "m.login.recaptcha") {
|
||||||
console.error("Web client setup to not use captcha, but HS demands a captcha.");
|
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);
|
deferred.resolve(response);
|
||||||
}
|
}
|
||||||
else if (response.data.next) {
|
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,
|
loginResponseFunc,
|
||||||
function(err) {
|
function(err) {
|
||||||
deferred.reject(err);
|
deferred.reject(err);
|
||||||
|
|
Loading…
Reference in New Issue