1 /** 2 * 3 */ 4 package ar.com.jiji.kaya.model; 5 6 import java.io.Serializable; 7 import java.util.Date; 8 import java.util.HashSet; 9 import java.util.Set; 10 11 import org.apache.commons.lang.ObjectUtils; 12 import org.apache.commons.lang.StringUtils; 13 14 import ar.com.jiji.kaya.crypto.PasswordDigester; 15 import ar.com.jiji.kaya.mail.MailAddress; 16 17 /** 18 * @author lparra 19 * @version $Revision$ $Date$ 20 */ 21 public class User implements Serializable { 22 /** 23 * 24 */ 25 private static final long serialVersionUID = -342247278763898757L; 26 27 private Long id; 28 29 private String username; 30 31 private String password; 32 33 private Date lastLogin; 34 35 private MailAddress email = new MailAddress(); 36 37 private boolean enabled; 38 39 private Set<Role> roles = new HashSet<Role>(); 40 41 public boolean isEnabled() { 42 return enabled; 43 } 44 45 public void setEnabled(boolean enabled) { 46 this.enabled = enabled; 47 } 48 49 public String getPassword() { 50 return password; 51 } 52 53 public void setPassword(String password) { 54 setPassword(password, false); 55 } 56 57 public void setPassword(String password, boolean encrypt) { 58 this.password = password; 59 if (encrypt) 60 encryptPassword(); 61 } 62 63 public void encryptPassword() { 64 setPassword(PasswordDigester.getInstance().crypt(getPassword())); 65 } 66 67 protected User() { 68 } 69 70 public User(String username) { 71 setUsername(username); 72 } 73 74 public User(String username, String password) { 75 setUsername(username); 76 setPassword(password); 77 } 78 79 public String getUsername() { 80 return username; 81 } 82 83 public void setUsername(String username) { 84 this.username = username; 85 } 86 87 public Long getId() { 88 return id; 89 } 90 91 public void setId(Long id) { 92 this.id = id; 93 } 94 95 @Override 96 public boolean equals(Object obj) { 97 boolean rv = true; 98 if (!(obj instanceof User)) 99 return false; 100 User tmp = (User) obj; 101 rv &= ObjectUtils.equals(this.id, tmp.id); 102 rv &= StringUtils.equals(getUsername(), tmp.getUsername()); 103 rv &= StringUtils.equals(getPassword(), tmp.getPassword()); 104 rv &= ObjectUtils.equals(getRoles(), tmp.getRoles()); 105 return rv; 106 } 107 108 Date getLastLogin() { 109 return lastLogin; 110 } 111 112 void setLastLogin(Date lastLogin) { 113 this.lastLogin = lastLogin; 114 } 115 116 public MailAddress getEmail() { 117 return email; 118 } 119 120 public void setEmail(MailAddress email) { 121 if (email == null) 122 this.email = new MailAddress(); 123 else 124 this.email = email; 125 } 126 127 public Set<Role> getRoles() { 128 return roles; 129 } 130 131 public void setRoles(Set<Role> roles) { 132 this.roles = roles; 133 } 134 135 public void addRole(Role role) { 136 if (roles == null) 137 roles = new HashSet<Role>(); 138 roles.add(role); 139 } 140 141 }