package net.sourceforge.solexatools.validation; // -*- tab-width: 4 -*-
import net.sourceforge.seqware.common.model.RegistrationDTO;
import net.sourceforge.solexatools.Debug;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
/**
* <p>
* RegistrationValidator class.
* </p>
*
* @author boconnor
* @version $Id: $Id
*/
public class RegistrationValidator extends LoginValidator {
private static String trueInvitationCode = "19dks1-12i393-12991-2219k";
/**
* <p>
* Constructor for RegistrationValidator.
* </p>
*/
public RegistrationValidator() {
super();
}
/**
* {@inheritDoc}
*
* Validates the specified RegistrationDTO instance.
*
* @param reg
* @param errors
*/
@Override
public void validate(Object reg, Errors errors) {
RegistrationDTO registration = (RegistrationDTO) reg;
Debug.put(": validating registration.id = " + registration.getRegistrationId());
this.validateEmail("emailAddress", registration.getEmailAddress(), errors);
// this.validateEmail("confirmEmailAddress",
// registration.getConfirmEmailAddress(), errors);
ValidationUtils.rejectIfEmpty(errors, "password", "required.password");
/*
* if(registration.getConfirmPassword().equals("")){ errors.reject("required.confirmPassword"); }
*/
ValidationUtils.rejectIfEmpty(errors, "confirmPassword", "required.confirmPassword");
// ValidationUtils.rejectIfEmpty(errors, "invitationCode", "required.invitationCode");
/*
* ValidationUtils.rejectIfEmpty(errors, "passwordHint", "required.passwordHint"); ValidationUtils.rejectIfEmpty(errors,
* "firstName", "required.firstName"); ValidationUtils.rejectIfEmpty(errors, "lastName", "required.lastName");
* this.validateEmailAddressesMatch(registration.getEmailAddress(), registration.getConfirmEmailAddress(), errors);
*/
this.validatePasswordsMatch(registration.getPassword(), registration.getConfirmPassword(), errors);
/* if this is a new-instance, make sure email is not already in use */
this.validateEmailNotInUse(registration.getEmailAddress(), errors);
// this.validateInvitationCode(registration.getInvitationCode(), errors);
/* //TODO// make sure the user has the required privileges to create/update */
}
/**
* <p>
* validateInvitationCode.
* </p>
*
* @param invitationCode
* a {@link java.lang.String} object.
* @param errors
* a {@link org.springframework.validation.Errors} object.
*/
public void validateInvitationCode(String invitationCode, Errors errors) {
if (errors.getFieldError("invitationCode") == null) {
if (!invitationCode.trim().equals(trueInvitationCode)) {
errors.reject("error.registration.invitationCode.false");
}
}
}
/**
* Determines if the registration's email address and confirm email address match.
*
* @param emailAddress
* a {@link java.lang.String} object.
* @param confirmEmailAddress
* a {@link java.lang.String} object.
* @param errors
* a {@link org.springframework.validation.Errors} object.
*/
public static void validateEmailAddressesMatch(String emailAddress, String confirmEmailAddress, Errors errors) {
if (errors.getFieldError("emailAddress") == null && errors.getFieldError("confirmEmailAddress") == null) {
/* The individual fields have passed validation. */
if (!emailAddress.trim().equalsIgnoreCase(confirmEmailAddress.trim())) {
errors.reject("error.registration.match.email");
}
}
}
/**
* Determines if the registration's password and confirm password match.
*
* @param password
* a {@link java.lang.String} object.
* @param confirmPassword
* a {@link java.lang.String} object.
* @param errors
* a {@link org.springframework.validation.Errors} object.
*/
public static void validatePasswordsMatch(String password, String confirmPassword, Errors errors) {
if (errors.getFieldError("password") == null && errors.getFieldError("confirmPassword") == null) {
/* The individual fields have passed validation. */
if (!password.trim().equals(confirmPassword.trim())) {
errors.reject("error.registration.match.password");
}
}
}
/**
* <p>
* validateEmailNotInUse.
* </p>
*
* @param emailAddress
* a {@link java.lang.String} object.
* @param errors
* a {@link org.springframework.validation.Errors} object.
*/
public void validateEmailNotInUse(String emailAddress, Errors errors) {
if (errors.getFieldError("emailAddress") == null) {
// TODO//
Debug.put(": email-in-use check");
}
}
}
// ex:sw=4:ts=4: