Handle registration errors.

This commit is contained in:
David Baker 2015-07-16 14:08:52 +01:00
parent df790c1b54
commit 7aa4d50560
2 changed files with 35 additions and 11 deletions

View file

@ -104,6 +104,15 @@ module.exports = React.createClass({
case this.FieldErrors.PasswordMismatch: case this.FieldErrors.PasswordMismatch:
strings.push("Passwords don't match"); strings.push("Passwords don't match");
break; break;
case this.FieldErrors.Missing:
strings.push("Missing "+keys[i]);
break;
case this.FieldErrors.TooShort:
strings.push(keys[i]+" is too short");
break;
case this.FieldErrors.InUse:
strings.push(keys[i]+" is already taken");
break;
} }
} }
var errtxt = strings.join(', '); var errtxt = strings.join(', ');

View file

@ -27,7 +27,9 @@ var ComponentBroker = require("../../ComponentBroker");
module.exports = { module.exports = {
FieldErrors: { FieldErrors: {
PasswordMismatch: 'PasswordMismatch', PasswordMismatch: 'PasswordMismatch',
PasswordLength: 'PasswordLength' TooShort: 'TooShort',
Missing: 'Missing',
InUse: 'InUse'
}, },
getInitialState: function() { getInitialState: function() {
@ -166,10 +168,18 @@ module.exports = {
if (formVals.password != formVals.confirmPassword) { if (formVals.password != formVals.confirmPassword) {
badFields.confirmPassword = this.FieldErrors.PasswordMismatch; badFields.confirmPassword = this.FieldErrors.PasswordMismatch;
} }
if (formVals.password.length < 6) { if (formVals.password == '') {
badFields.password = this.FieldErrors.PasswordLength; badFields.password = this.FieldErrors.Missing;
} else if (formVals.password.length < 6) {
badFields.password = this.FieldErrors.Length;
}
if (formVals.username == '') {
badFields.username = this.FieldErrors.Missing;
}
if (Object.keys(badFields).length > 0) {
this.onBadFields(badFields);
return;
} }
this.onBadFields(badFields);
MatrixClientPeg.replaceUsingUrls( MatrixClientPeg.replaceUsingUrls(
this.getHsUrl(), this.getHsUrl(),
@ -308,15 +318,20 @@ module.exports = {
}); });
self.startStage(flow.stages[flowStage]); self.startStage(flow.stages[flowStage]);
} else { } else {
var errorText = "Unable to contact the given Home Server";
if (error.httpStatus == 401) {
errorText = "Authorisation failed!";
}
self.setStep("initial"); self.setStep("initial");
self.setState({ var newState = {
busy: false, busy: false,
errorText: errorText errorText: "Unable to contact the given Home Server"
}); };
if (error.name == 'M_USER_IN_USE') {
delete newState.errorText;
self.onBadFields({
username: self.FieldErrors.InUse
});
} else if (error.httpStatus == 401) {
newState.errorText = "Authorisation failed!";
}
self.setState(newState);
} }
}); });
}, },