fleet/frontend/components/forms/ChangePasswordForm/validate.js
2017-02-07 09:29:48 -05:00

38 lines
1.1 KiB
JavaScript

import { size } from 'lodash';
import validateEquality from 'components/forms/validators/validate_equality';
import validPassword from 'components/forms/validators/valid_password';
export default (formData) => {
const errors = {};
const {
old_password: oldPassword,
new_password: newPassword,
new_password_confirmation: newPasswordConfirmation,
} = formData;
if (newPassword && newPasswordConfirmation && !validPassword(newPassword)) {
errors.new_password = 'Password must be at least 7 characters and contain at least 1 letter, 1 number, and 1 symbol';
}
if (!oldPassword) {
errors.old_password = 'Password must be present';
}
if (!newPassword) {
errors.new_password = 'New password must be present';
}
if (!newPasswordConfirmation) {
errors.new_password_confirmation = 'New password confirmation must be present';
}
if (newPassword && newPasswordConfirmation &&
!validateEquality(newPassword, newPasswordConfirmation)) {
errors.new_password_confirmation = 'New password confirmation does not match new password';
}
const valid = !size(errors);
return { valid, errors };
};