UserForm.java
package org.xandercat.pmdb.form.useradmin;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import org.springframework.validation.annotation.Validated;
import org.xandercat.pmdb.config.PmdbGrantedAuthority;
import org.xandercat.pmdb.dto.PmdbUser;
import org.xandercat.pmdb.util.Pair;
import org.xandercat.pmdb.validation.Password;
import org.xandercat.pmdb.validation.Username;
import org.xandercat.pmdb.validation.ValuesMatch;
/**
* Form for user details.
*
* @author Scott Arnold
*/
@Validated
public class UserForm {
@Username
@Length(min=4, max=50)
private String username;
@Password
@ValuesMatch
private Pair<String> passwordPair = new Pair<String>();
@Length(max=50)
private String firstName;
@Length(max=50)
private String lastName;
@Email
@Length(max=200)
private String email;
private boolean administrator;
private boolean enabled;
public UserForm() {
}
public UserForm(PmdbUser user, boolean administrator) {
this.username = user.getUsername();
this.firstName = user.getFirstName();
this.lastName = user.getLastName();
this.email = user.getEmail();
this.enabled = user.isEnabled();
this.administrator = administrator;
}
public PmdbUser toUser() {
PmdbUser user = new PmdbUser(username);
user.setEmail(email);
user.setEnabled(enabled);
user.setFirstName(firstName);
user.setLastName(lastName);
user.addGrantedAuthority(PmdbGrantedAuthority.ROLE_USER);
if (administrator) {
user.addGrantedAuthority(PmdbGrantedAuthority.ROLE_ADMIN);
}
return user;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Pair<String> getPasswordPair() {
return passwordPair;
}
public void setPasswordPair(Pair<String> passwordPair) {
this.passwordPair = passwordPair;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public boolean isAdministrator() {
return administrator;
}
public void setAdministrator(boolean administrator) {
this.administrator = administrator;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
}