package org.marketcetera.admin.provisioning;
import java.util.List;
import java.util.Set;
import javax.annotation.PostConstruct;
import org.marketcetera.util.log.SLF4JLoggerProxy;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
/* $License$ */
/**
* Enables user configuration from properties.
*
* @author Colin DuPlantis
* @version $Id$
* @since $Release$
*/
@Configuration
@EnableAutoConfiguration
@ConfigurationProperties("admin")
public class AdminConfiguration
{
/**
* Validate and start the object.
*/
@PostConstruct
public void start()
{
SLF4JLoggerProxy.debug(this,
"Provisioning users: {} permissions: {} roles: {} supervisor permissions: {}",
users,
permissions,
roles,
supervisorPermissions);
}
/**
* Get the users value.
*
* @return a List<User>
value
*/
public List getUsers()
{
return users;
}
/**
* Sets the users value.
*
* @param inUsers a List<User>
value
*/
public void setUsers(List inUsers)
{
users = inUsers;
}
/**
* Get the roles value.
*
* @return a List<Role>
value
*/
public List getRoles()
{
return roles;
}
/**
* Sets the roles value.
*
* @param inRoles a List<Role>
value
*/
public void setRoles(List inRoles)
{
roles = inRoles;
}
/**
* Get the permissions value.
*
* @return a List<Permission>
value
*/
public List getPermissions()
{
return permissions;
}
/**
* Sets the permissions value.
*
* @param inPermissions a List<Permission>
value
*/
public void setPermissions(List inPermissions)
{
permissions = inPermissions;
}
/**
* Get the supervisorPermissions value.
*
* @return a List<SupervisorPermission>
value
*/
public List getSupervisorPermissions()
{
return supervisorPermissions;
}
/**
* Sets the supervisorPermissions value.
*
* @param inSupervisorPermissions a List<SupervisorPermission>
value
*/
public void setSupervisorPermissions(List inSupervisorPermissions)
{
supervisorPermissions = inSupervisorPermissions;
}
/**
* Describes a permission.
*
* @author Colin DuPlantis
* @version $Id$
* @since $Release$
*/
public static class Permission
{
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
StringBuilder builder = new StringBuilder();
builder.append("Permission [name=").append(name).append(", description=").append(description).append("]");
return builder.toString();
}
/**
* Get the name value.
*
* @return a String
value
*/
public String getName()
{
return name;
}
/**
* Sets the name value.
*
* @param inName a String
value
*/
public void setName(String inName)
{
name = inName;
}
/**
* Get the description value.
*
* @return a String
value
*/
public String getDescription()
{
return description;
}
/**
* Sets the description value.
*
* @param inDescription a String
value
*/
public void setDescription(String inDescription)
{
description = inDescription;
}
/**
* name value
*/
private String name;
/**
* description value
*/
private String description;
}
/**
* Describes a role.
*
* @author Colin DuPlantis
* @version $Id$
* @since $Release$
*/
public static class Role
{
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
StringBuilder builder = new StringBuilder();
builder.append("Role [name=").append(name).append(", description=").append(description).append(", users=")
.append(users).append(", permissions=").append(permissions).append("]");
return builder.toString();
}
/**
* Get the name value.
*
* @return a String
value
*/
public String getName()
{
return name;
}
/**
* Sets the name value.
*
* @param inName a String
value
*/
public void setName(String inName)
{
name = inName;
}
/**
* Get the description value.
*
* @return a String
value
*/
public String getDescription()
{
return description;
}
/**
* Sets the description value.
*
* @param inDescription a String
value
*/
public void setDescription(String inDescription)
{
description = inDescription;
}
/**
* Get the users value.
*
* @return a Set<String>
value
*/
public Set getUsers()
{
return users;
}
/**
* Sets the users value.
*
* @param inUsers a Set<String>
value
*/
public void setUsers(Set inUsers)
{
users = inUsers;
}
/**
* Get the permissions value.
*
* @return a Set<String>
value
*/
public Set getPermissions()
{
return permissions;
}
/**
* Sets the permissions value.
*
* @param inPermissions a Set<String>
value
*/
public void setPermissions(Set inPermissions)
{
permissions = inPermissions;
}
/**
* name value
*/
private String name;
/**
* description value
*/
private String description;
/**
* users value
*/
private Set users = Sets.newHashSet();
/**
* permissions value
*/
private Set permissions = Sets.newHashSet();
}
/**
* Describes a user.
*
* @author Colin DuPlantis
* @version $Id$
* @since $Release$
*/
public static class User
{
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
StringBuilder builder = new StringBuilder();
builder.append("User [name=").append(name).append(", description=").append(description)
.append(", isActive=").append(isActive).append("]");
return builder.toString();
}
/**
* Get the name value.
*
* @return a String
value
*/
public String getName()
{
return name;
}
/**
* Sets the name value.
*
* @param inName a String
value
*/
public void setName(String inName)
{
name = inName;
}
/**
* Get the description value.
*
* @return a String
value
*/
public String getDescription()
{
return description;
}
/**
* Sets the description value.
*
* @param inDescription a String
value
*/
public void setDescription(String inDescription)
{
description = inDescription;
}
/**
* Get the password value.
*
* @return a String
value
*/
public String getPassword()
{
return password;
}
/**
* Sets the password value.
*
* @param inPassword a String
value
*/
public void setPassword(String inPassword)
{
password = inPassword;
}
/**
* Get the isActive value.
*
* @return a boolean
value
*/
public boolean getIsActive()
{
return isActive;
}
/**
* Sets the isActive value.
*
* @param inIsActive a boolean
value
*/
public void setIsActive(boolean inIsActive)
{
isActive = inIsActive;
}
/**
* name value
*/
private String name;
/**
* description value
*/
private String description;
/**
* password value
*/
private String password;
/**
* is active value
*/
private boolean isActive = true;
}
/**
* Defines a supervisor permission.
*
* @author Colin DuPlantis
* @version $Id$
* @since $Release$
*/
public static class SupervisorPermission
{
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
StringBuilder builder = new StringBuilder();
builder.append("SupervisorPermission [name=").append(name).append(", description=").append(description)
.append(", supervisorName=").append(supervisorName).append(", permissions=").append(permissions)
.append(", subjectNames=").append(subjectNames).append("]");
return builder.toString();
}
/**
* Get the name value.
*
* @return a String
value
*/
public String getName()
{
return name;
}
/**
* Sets the name value.
*
* @param inName a String
value
*/
public void setName(String inName)
{
name = inName;
}
/**
* Get the description value.
*
* @return a String
value
*/
public String getDescription()
{
return description;
}
/**
* Sets the description value.
*
* @param inDescription a String
value
*/
public void setDescription(String inDescription)
{
description = inDescription;
}
/**
* Get the supervisorName value.
*
* @return a String
value
*/
public String getSupervisorName()
{
return supervisorName;
}
/**
* Sets the supervisorName value.
*
* @param inSupervisorName a String
value
*/
public void setSupervisorName(String inSupervisorName)
{
supervisorName = inSupervisorName;
}
/**
* Get the permissions value.
*
* @return a Set<String>
value
*/
public Set getPermissions()
{
return permissions;
}
/**
* Sets the permissions value.
*
* @param inPermissions a Set<String>
value
*/
public void setPermissions(Set inPermissions)
{
permissions = inPermissions;
}
/**
* Get the subjectNames value.
*
* @return a Set<String>
value
*/
public Set getSubjectNames()
{
return subjectNames;
}
/**
* Sets the subjectNames value.
*
* @param inSubjectNames a Set<String>
value
*/
public void setSubjectNames(Set inSubjectNames)
{
subjectNames = inSubjectNames;
}
/**
* name value
*/
private String name;
/**
* description value
*/
private String description;
/**
* defines the supervisor user name
*/
private String supervisorName;
/**
* permissions granted to the supervisor
*/
private Set permissions = Sets.newHashSet();
/**
* permissions granted to the supervisor over the given users
*/
private Set subjectNames = Sets.newHashSet();
}
/**
* users value
*/
private List users = Lists.newArrayList();
/**
* roles value
*/
private List roles = Lists.newArrayList();
/**
* permissions value
*/
private List permissions = Lists.newArrayList();
/**
* supervisor permissions value
*/
private List supervisorPermissions = Lists.newArrayList();
}