Add username validation to student complete registration

Fixes #760
This commit is contained in:
Matthew Taylor 2016-08-12 08:10:20 -04:00
parent 2fc62cba13
commit 537104c56b
3 changed files with 14 additions and 4 deletions

View file

@ -23,6 +23,7 @@ module.exports.validations = {
return phoneNumberUtil.isValidNumber(parsed);
}
};
module.exports.validations.notEqualsUsername = module.exports.validations.notEquals;
module.exports.validationHOCFactory = function (defaultValidationErrors) {
return function (Component) {

View file

@ -226,6 +226,7 @@ module.exports = {
ChoosePasswordStep: intl.injectIntl(React.createClass({
getDefaultProps: function () {
return {
studentUsername: null,
showPassword: false,
waiting: false
};
@ -257,7 +258,7 @@ module.exports = {
validations={{
minLength: 6,
notEquals: 'password',
notEqualsField: 'user.username'
notEqualsUsername: this.props.studentUsername
}}
validationErrors={{
minLength: formatMessage({
@ -266,7 +267,7 @@ module.exports = {
notEquals: formatMessage({
id: 'registration.validationPasswordNotEquals'
}),
notEqualsField: formatMessage({
notEqualsUsername: formatMessage({
id: 'registration.validationPasswordNotUsername'
})
}}
@ -879,7 +880,11 @@ module.exports = {
};
},
onNextStep: function () {
this.props.onNextStep();
this.props.onNextStep({
user: {
username: this.props.studentUsername
}
});
},
render: function () {
var formatMessage = this.props.intl.formatMessage;

View file

@ -132,7 +132,11 @@ var StudentCompleteRegistration = intl.injectIntl(React.createClass({
{this.props.must_reset_password ?
<Steps.ChoosePasswordStep onNextStep={this.advanceStep}
showPassword={true}
waiting={this.state.waiting} />
waiting={this.state.waiting}
studentUsername={
this.state.formData.user &&
this.state.formData.user.username
} />
:
[]
}