View Javadoc

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 }