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 }