This commit is contained in:
BrittanyBi
2019-04-03 20:14:54 -06:00
parent 2a4adcbd08
commit 6f70785387
7 changed files with 157 additions and 49 deletions
@@ -0,0 +1,18 @@
package edu.msudenver.tsp.website.controller;
import edu.msudenver.tsp.website.forms.UserCreationForm;
import javax.validation.ConstraintValidatorContext;
public class ConfirmPasswordValidator
implements ConstraintValidator<PasswordMatchChecker, Object> {
@Override
public void initialize(final PasswordMatchChecker constraintAnnotation) {
}
@Override
public boolean isValid(final Object obj, final ConstraintValidatorContext context) {
final UserCreationForm user = (UserCreationForm) obj;
return user.getPassword().equals(user.getConfirmPassword());
}
}
@@ -0,0 +1,16 @@
package edu.msudenver.tsp.website.controller;
import javax.validation.Constraint;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Target({TYPE,ANNOTATION_TYPE})
@Retention(RUNTIME)
@Constraint(validatedBy = ConfirmPasswordValidator.class)
@Documented
public @interface PasswordMatchChecker {
String message() default "Passwords don't match";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
@@ -27,6 +27,7 @@ public class UserCreationController {
model.addAttribute("userID", userCreationForm.getUserID());
model.addAttribute("username", userCreationForm.getUsername());
model.addAttribute("password", userCreationForm.getPassword());
model.addAttribute("confirmPassword", userCreationForm.getConfirmPassword());
model.addAttribute("emailAddress", userCreationForm.getEmailAddress());
model.addAttribute("firstName", userCreationForm.getFirstName());
model.addAttribute("lastName", userCreationForm.getLastName());
@@ -3,16 +3,50 @@ package edu.msudenver.tsp.website.forms;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Getter
@Setter
public class UserCreationForm {
@NotNull
@NotEmpty
private int userID;
@NotNull
@NotEmpty
private String username;
@NotNull
@NotEmpty
private String password;
@NotNull
@NotEmpty
private String confirmPassword;
public Boolean checkPassword(final String passwordInput, final String passwordCheck) {
if(!passwordInput.equals(passwordCheck)) {
return false;
}
else return true;
}
@NotNull
@NotEmpty
private String emailAddress;
@NotNull
@NotEmpty
private String firstName;
@NotNull
@NotEmpty
private String lastName;
private String referrer; // optional
@NotNull
@NotEmpty
private boolean agreedToTerms;
}
+11 -2
View File
@@ -7,21 +7,28 @@
<title>User Creation</title>
</head>
<body>
<form method="post" action="">
<form method="post" action="" enctype="utf8">
<label>Username:
<input type="text" name="username"/>
<p th:each="error: ${#fields.errors('userName')}"
th:text="${error}">Validation error</p>
</label>
<br>
<label>Password:
<input type="text" name="password"/>
<input type="text" name="password" th:field="*{matchingPassword}"/>
<p th:each="error : ${#fields.errors('password')}"
th:text="${error}">Validation error</p>
</label>
<br>
<label>Confirm Password:
<input type="text" name="confirmPassword"/>
</label>
<br>
<label>Email Address:
<input type="text" name="emailAddress"/>
<p th:each="error : ${#fields.errors('email')}"
th:text="${error}">Validation error</p>
</label>
<br>
<label>First Name:
@@ -34,6 +41,8 @@
<br>
<label>I agree to the terms and conditions.
<input type="checkbox" name="agreedToTerms"/>
<p th:each="error : ${#fields.errors('terms')}"
th:text="${error}">Validation error</p>
</label>
<br>
<input type="submit" value="Save">