1 21 22 package com.jaspersoft.jasperserver.api.metadata.user.domain.impl.hibernate; 23 24 import java.util.HashSet ; 25 import java.util.Iterator ; 26 import java.util.List ; 27 import java.util.Set ; 28 29 import org.acegisecurity.GrantedAuthority; 30 import org.acegisecurity.GrantedAuthorityImpl; 31 import org.acegisecurity.userdetails.UserDetails; 32 import org.apache.commons.collections.CollectionUtils; 33 import org.apache.commons.collections.Predicate; 34 import org.apache.commons.lang.builder.EqualsBuilder; 35 import org.apache.commons.lang.builder.HashCodeBuilder; 36 import org.apache.commons.lang.builder.ToStringBuilder; 37 38 import com.jaspersoft.jasperserver.api.common.service.ImplementationObjectFactory; 39 import com.jaspersoft.jasperserver.api.metadata.common.domain.impl.IdedObject; 40 import com.jaspersoft.jasperserver.api.metadata.common.service.ResourceFactory; 41 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.PersistentObjectResolver; 42 import com.jaspersoft.jasperserver.api.metadata.user.domain.Role; 43 import com.jaspersoft.jasperserver.api.metadata.user.domain.User; 44 45 51 public class RepoUser implements User, IdedObject { 52 53 private Set roleSet = new HashSet (); 54 private long id; 55 private String username = null; 56 private String fullName = null; 57 private String password = null; 58 private String emailAddress = null; 59 private boolean externallyDefined = false; 60 private boolean enabled = false; 61 62 66 public long getId() { 67 return id; 68 } 69 70 public void setId(long id) { 71 this.id = id; 72 } 73 74 83 public String getUsername() { 84 return username; 85 } 86 87 public void setUsername(String newUsername) { 88 if (newUsername == null || newUsername.trim().length() == 0) { 89 throw new RuntimeException ("No user name"); 90 } 91 username = newUsername; 92 } 93 94 103 public String getFullName() { 104 return fullName; 105 } 106 107 110 public void setFullName(String fullName) { 111 this.fullName = fullName; 112 } 113 114 120 public String getEmailAddress() { 121 return emailAddress; 122 } 123 124 127 public void setEmailAddress(String emailAddress) { 128 this.emailAddress = emailAddress; 129 } 130 131 141 public Set getRoles() { 142 return roleSet; 143 } 144 145 public void setRoles(Set newRoleSet) { 146 roleSet = newRoleSet; 147 } 148 149 public void addRole(final Role newRole) { 150 162 if (newRole != null && !getRoles().contains(newRole)) { 163 getRoles().add(newRole); 164 } 166 } 167 168 public void removeRole(final Role removedRole) { 169 getRoles().remove(removedRole); 170 } 172 173 176 public List getAttributes() { 177 return null; 179 } 180 181 184 public GrantedAuthority[] getAuthorities() { 185 Set currentRoles = getRoles(); 186 187 GrantedAuthority[] authorities = currentRoles == null ? new GrantedAuthority[0] : new GrantedAuthority[currentRoles.size()]; 188 189 if (currentRoles == null) { 190 return authorities; 191 } 192 193 Iterator it = currentRoles.iterator(); 194 int i = 0; 195 while (it.hasNext()) { 196 Role aRole = (Role) it.next(); 197 authorities[i++] = new GrantedAuthorityImpl(aRole.getRoleName()); 198 } 199 return authorities; 200 } 201 202 209 public String getPassword() { 210 return password; 211 } 212 213 216 public void setPassword(String password) { 217 this.password = password; 218 } 219 220 223 public boolean isAccountNonExpired() { 224 return enabled; 225 } 226 227 230 public boolean isAccountNonLocked() { 231 return enabled; 232 } 233 234 237 public boolean isCredentialsNonExpired() { 238 return enabled; 239 } 240 241 247 public boolean isExternallyDefined() { 248 return externallyDefined; 249 } 250 251 254 public void setExternallyDefined(boolean externallyDefined) { 255 this.externallyDefined = externallyDefined; 256 } 257 258 264 public boolean isEnabled() { 265 return enabled; 266 } 267 268 271 public void setEnabled(boolean enabled) { 272 this.enabled = enabled; 273 } 274 275 public void copyFromClient(Object obj, PersistentObjectResolver resolver) { 276 User u = (User) obj; 277 278 setUsername(u.getUsername()); 280 setPassword(u.getPassword()); 281 setFullName(u.getFullName()); 282 setEmailAddress(u.getEmailAddress()); 283 setExternallyDefined(u.isExternallyDefined()); 284 setEnabled(u.isEnabled()); 285 286 Set clientRoles = u.getRoles(); 289 Set repoRoles = null; 290 if (clientRoles != null) { 291 repoRoles = new HashSet (clientRoles.size()); 292 if (clientRoles.size() > 0) { 293 for (Iterator it = clientRoles.iterator(); it.hasNext(); ) { 294 Role clientRole = (Role) it.next(); 295 RepoRole r = (RepoRole) resolver.getPersistentObject(clientRole); 296 if (r == null) { 297 r = new RepoRole(); 298 } 299 r.copyFromClient(clientRole, resolver); 300 repoRoles.add(r); 301 } 302 } 303 } 304 setRoles(repoRoles); 305 } 306 307 public Object toClient(ResourceFactory clientMappingFactory) { 308 User u = (User) clientMappingFactory.newObject(User.class); 309 u.setUsername(getUsername()); 311 u.setPassword(getPassword()); 312 u.setFullName(getFullName()); 313 u.setEmailAddress(getEmailAddress()); 314 u.setExternallyDefined(isExternallyDefined()); 315 u.setEnabled(isEnabled()); 316 317 Set repoRoles = getRoles(); 318 Set clientRoles = null; 319 if (repoRoles != null) { 320 clientRoles = new HashSet (repoRoles.size()); 321 if (repoRoles.size() > 0) { 322 for (Iterator it = repoRoles.iterator(); it.hasNext(); ) { 323 RepoRole repoRole = (RepoRole) it.next(); 324 Role r = (Role) repoRole.toClient(clientMappingFactory); 325 clientRoles.add(r); 326 } 327 } 328 } 329 u.setRoles(clientRoles); 330 return u; 331 332 } 333 334 public String toString() { 335 return new ToStringBuilder(this) 336 .append("userId", getId()) 337 .append("username", getUsername()) 338 .toString(); 339 } 340 341 public boolean equals(Object other) { 342 if ( !(other instanceof RepoUser) ) return false; 343 RepoUser castOther = (RepoUser) other; 344 return new EqualsBuilder() 345 .append(this.getId(), castOther.getId()) 346 .isEquals(); 347 } 348 349 public int hashCode() { 350 return new HashCodeBuilder() 351 .append(getId()) 352 .toHashCode(); 353 } 354 } 355 | Popular Tags |