/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jetspeed.services.beans;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlRootElement;
import org.apache.jetspeed.security.Group;
import org.apache.jetspeed.security.PasswordCredential;
import org.apache.jetspeed.security.Role;
import org.apache.jetspeed.security.User;
/**
* DTO for user details data. The object will be transformed to JSON to be
* transfered to the JS client.
*
* @author Joachim Mueller
*
*/
@XmlRootElement(name = "data")
public class UserDetailBean implements Serializable {
private Map infoMap;
private Timestamp creationDate;
private Timestamp modifiedDate;
private boolean enabled = true;
private boolean credentialUpdateRequired = false;
private List roles = null;
private List groups = null;
private List availableRoles = null;
private List availableGroups = null;
private static final long serialVersionUID = 1L;
public UserDetailBean() {
}
public UserDetailBean(User user, PasswordCredential credential, List roles, List groups, List allRoles, List allGroups) {
this.name = user.getName();
this.infoMap = user.getInfoMap();
this.creationDate = user.getCreationDate();
this.modifiedDate = user.getModifiedDate();
this.enabled = user.isEnabled();
this.availableRoles = allRoles;
this.availableGroups = allGroups;
this.credentialUpdateRequired = credential.isUpdateRequired();
for (Role role : roles) {
this.roles = (this.roles == null ? new ArrayList() : this.roles);
this.roles.add(role.getName());
if (availableRoles.contains(role.getName())) {
availableRoles.remove(role.getName());
}
}
for (Group group : groups) {
this.groups = (this.groups == null ? new ArrayList() : this.groups);
this.groups.add(group.getName());
if (availableGroups.contains(group.getName())) {
availableGroups.remove(group.getName());
}
}
}
private String name;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the infoMap
*/
public Map getInfoMap() {
return infoMap;
}
/**
* @param infoMap
* the infoMap to set
*/
public void setInfoMap(Map infoMap) {
this.infoMap = infoMap;
}
/**
* @return the creationDate
*/
public Timestamp getCreationDate() {
return creationDate;
}
/**
* @param creationDate
* the creationDate to set
*/
public void setCreationDate(Timestamp creationDate) {
this.creationDate = creationDate;
}
/**
* @return the modifiedDate
*/
public Timestamp getModifiedDate() {
return modifiedDate;
}
/**
* @param modifiedDate
* the modifiedDate to set
*/
public void setModifiedDate(Timestamp modifiedDate) {
this.modifiedDate = modifiedDate;
}
/**
* @return the enabled
*/
public boolean isEnabled() {
return enabled;
}
/**
* @param enabled
* the enabled to set
*/
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
/**
* @return the groups
*/
public List getGroups() {
return groups;
}
/**
* @param groups
* the groups to set
*/
public void setGroups(List groups) {
this.groups = groups;
}
/**
* @return the roles
*/
public List getRoles() {
return roles;
}
/**
* @param roles
* the roles to set
*/
public void setRoles(List roles) {
this.roles = roles;
}
/**
* @return the availableRoles
*/
public List getAvailableRoles() {
return availableRoles;
}
/**
* @param availableRoles
* the availableRoles to set
*/
public void setAvailableRoles(List availableRoles) {
this.availableRoles = availableRoles;
}
/**
* @return the availableGroups
*/
public List getAvailableGroups() {
return availableGroups;
}
/**
* @param availableGroups
* the availableGroups to set
*/
public void setAvailableGroups(List availableGroups) {
this.availableGroups = availableGroups;
}
/**
* @return the credentialUpdateRequired
*/
public boolean isCredentialUpdateRequired() {
return credentialUpdateRequired;
}
}