/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.sec.businessobject; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import org.apache.commons.lang.StringUtils; import org.kuali.kfs.sys.KFSPropertyConstants; import org.kuali.kfs.sys.context.SpringContext; import org.kuali.rice.kim.api.identity.Person; import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; /** * Represents the assignment of one or more security definitions and one or more models to a principal */ public class SecurityPrincipal extends PersistableBusinessObjectBase { protected String principalId; protected Person securityPerson; protected List<SecurityPrincipalDefinition> principalDefinitions = new ArrayList<SecurityPrincipalDefinition>(); protected List<SecurityModelMember> principalModels = new ArrayList<SecurityModelMember>(); /** * Gets the principalId attribute. * * @return Returns the principalId. */ public String getPrincipalId() { return principalId; } /** * Sets the principalId attribute value. * * @param principalId The principalId to set. */ public void setPrincipalId(String principalId) { this.principalId = principalId; } /** * Gets the securityPerson attribute. * * @return Returns the securityPerson. */ public Person getSecurityPerson() { securityPerson = SpringContext.getBean(org.kuali.rice.kim.api.identity.PersonService.class).updatePersonIfNecessary(principalId, securityPerson); return securityPerson; } /** * Sets the securityPerson attribute value. * * @param securityPerson The securityPerson to set. */ public void setSecurityPerson(Person securityPerson) { this.securityPerson = securityPerson; } /** * Gets the principalDefinitions attribute. * * @return Returns the principalDefinitions. */ public List<SecurityPrincipalDefinition> getPrincipalDefinitions() { return principalDefinitions; } /** * Sets the principalDefinitions attribute value. * * @param principalDefinitions The principalDefinitions to set. */ public void setPrincipalDefinitions(List<SecurityPrincipalDefinition> principalDefinitions) { this.principalDefinitions = principalDefinitions; } /** * Gets the principalModels attribute. * * @return Returns the principalModels. */ public List<SecurityModelMember> getPrincipalModels() { return principalModels; } /** * Sets the principalModels attribute value. * * @param principalModels The principalModels to set. */ public void setPrincipalModels(List<SecurityModelMember> principalModels) { this.principalModels = principalModels; } /** * Returns String of definition names assigned to principal */ public String getPrincipalDefinitionNames() { String definitionNames = ""; for (SecurityPrincipalDefinition definition : principalDefinitions) { if (StringUtils.isNotBlank(definitionNames)) { definitionNames += ", "; } definitionNames += definition.getSecurityDefinition().getName(); } return definitionNames; } /** * Returns String of model names assigned to principal */ public String getPrincipalModelNames() { String modelNames = ""; for (SecurityModelMember modelMember : principalModels) { if (StringUtils.isNotBlank(modelNames)) { modelNames += ", "; } modelNames += modelMember.getSecurityModel().getName(); } return modelNames; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("SecurityPrincipal ["); if (principalId != null) { builder.append("principalId="); builder.append(principalId); builder.append(", "); } if (getPrincipalDefinitionNames() != null) { builder.append("getPrincipalDefinitionNames()="); builder.append(getPrincipalDefinitionNames()); builder.append(", "); } if (getPrincipalModelNames() != null) { builder.append("getPrincipalModelNames()="); builder.append(getPrincipalModelNames()); } builder.append("]"); return builder.toString(); } }