/* * 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.kuali.kfs.sys.KFSPropertyConstants; import org.kuali.rice.core.api.mo.common.active.MutableInactivatable; import org.kuali.rice.core.api.util.type.KualiInteger; import org.kuali.rice.krad.bo.PersistableBusinessObjectBase; /** * Defines a restriction that can be given to a model or principal. A restriction defines the attribute that is restricted on, and the action(s) that are being restricted. A KIM * permission and role is created from a definition record */ public class SecurityDefinition extends PersistableBusinessObjectBase implements MutableInactivatable { private KualiInteger id; private String name; private String description; private String roleId; private KualiInteger attributeId; private boolean restrictViewAccountingLine; private boolean restrictEditAccountingLine; private boolean restrictViewDocument; private boolean restrictEditDocument; private boolean restrictViewNotesAndAttachments; private boolean restrictLookup; private boolean restrictGLInquiry; private boolean restrictLaborInquiry; private boolean active; private SecurityAttribute securityAttribute; private List<SecurityDefinitionDocumentType> definitionDocumentTypes; public SecurityDefinition() { super(); definitionDocumentTypes = new ArrayList<SecurityDefinitionDocumentType>(); restrictViewAccountingLine = false; restrictEditAccountingLine = false; restrictViewDocument = false; restrictEditDocument = false; restrictViewNotesAndAttachments = false; restrictLookup = false; restrictGLInquiry = false; restrictLaborInquiry = false; } /** * Gets the id attribute. * * @return Returns the id. */ public KualiInteger getId() { return id; } /** * Sets the id attribute value. * * @param id The id to set. */ public void setId(KualiInteger id) { this.id = id; } /** * Gets the name attribute. * * @return Returns the name. */ public String getName() { return name; } /** * Sets the name attribute value. * * @param name The name to set. */ public void setName(String name) { this.name = name; } /** * Gets the description attribute. * * @return Returns the description. */ public String getDescription() { return description; } /** * Sets the description attribute value. * * @param description The description to set. */ public void setDescription(String description) { this.description = description; } /** * Gets the roleId attribute. * * @return Returns the roleId. */ public String getRoleId() { return roleId; } /** * Sets the roleId attribute value. * * @param roleId The roleId to set. */ public void setRoleId(String roleId) { this.roleId = roleId; } /** * Gets the attributeId attribute. * * @return Returns the attributeId. */ public KualiInteger getAttributeId() { return attributeId; } /** * Sets the attributeId attribute value. * * @param attributeId The attributeId to set. */ public void setAttributeId(KualiInteger attributeId) { this.attributeId = attributeId; } /** * Gets the restrictViewAccountingLine attribute. * * @return Returns the restrictViewAccountingLine. */ public boolean isRestrictViewAccountingLine() { return restrictViewAccountingLine; } /** * Sets the restrictViewAccountingLine attribute value. * * @param restrictViewAccountingLine The restrictViewAccountingLine to set. */ public void setRestrictViewAccountingLine(boolean restrictViewAccountingLine) { this.restrictViewAccountingLine = restrictViewAccountingLine; } /** * Gets the restrictEditAccountingLine attribute. * * @return Returns the restrictEditAccountingLine. */ public boolean isRestrictEditAccountingLine() { return restrictEditAccountingLine; } /** * Sets the restrictEditAccountingLine attribute value. * * @param restrictEditAccountingLine The restrictEditAccountingLine to set. */ public void setRestrictEditAccountingLine(boolean restrictEditAccountingLine) { this.restrictEditAccountingLine = restrictEditAccountingLine; } /** * Gets the restrictViewDocument attribute. * * @return Returns the restrictViewDocument. */ public boolean isRestrictViewDocument() { return restrictViewDocument; } /** * Sets the restrictViewDocument attribute value. * * @param restrictViewDocument The restrictViewDocument to set. */ public void setRestrictViewDocument(boolean restrictViewDocument) { this.restrictViewDocument = restrictViewDocument; } /** * Gets the restrictViewNotesAndAttachments attribute. * * @return Returns the restrictViewNotesAndAttachments. */ public boolean isRestrictViewNotesAndAttachments() { return restrictViewNotesAndAttachments; } /** * Sets the restrictViewNotesAndAttachments attribute value. * * @param restrictViewNotesAndAttachments The restrictViewNotesAndAttachments to set. */ public void setRestrictViewNotesAndAttachments(boolean restrictViewNotesAndAttachments) { this.restrictViewNotesAndAttachments = restrictViewNotesAndAttachments; } /** * Gets the restrictLookup attribute. * * @return Returns the restrictLookup. */ public boolean isRestrictLookup() { return restrictLookup; } /** * Sets the restrictLookup attribute value. * * @param restrictLookup The restrictLookup to set. */ public void setRestrictLookup(boolean restrictLookup) { this.restrictLookup = restrictLookup; } /** * Gets the restrictGLInquiry attribute. * * @return Returns the restrictGLInquiry. */ public boolean isRestrictGLInquiry() { return restrictGLInquiry; } /** * Sets the restrictGLInquiry attribute value. * * @param restrictGLInquiry The restrictGLInquiry to set. */ public void setRestrictGLInquiry(boolean restrictGLInquiry) { this.restrictGLInquiry = restrictGLInquiry; } /** * Gets the restrictLaborInquiry attribute. * * @return Returns the restrictLaborInquiry. */ public boolean isRestrictLaborInquiry() { return restrictLaborInquiry; } /** * Sets the restrictLaborInquiry attribute value. * * @param restrictLaborInquiry The restrictLaborInquiry to set. */ public void setRestrictLaborInquiry(boolean restrictLaborInquiry) { this.restrictLaborInquiry = restrictLaborInquiry; } /** * Gets the active attribute. * * @return Returns the active. */ public boolean isActive() { return active; } /** * Sets the active attribute value. * * @param active The active to set. */ public void setActive(boolean active) { this.active = active; } /** * Gets the securityAttribute attribute. * * @return Returns the securityAttribute. */ public SecurityAttribute getSecurityAttribute() { return securityAttribute; } /** * Sets the securityAttribute attribute value. * * @param securityAttribute The securityAttribute to set. */ public void setSecurityAttribute(SecurityAttribute securityAttribute) { this.securityAttribute = securityAttribute; } /** * Gets the restrictEditDocument attribute. * * @return Returns the restrictEditDocument. */ public boolean isRestrictEditDocument() { return restrictEditDocument; } /** * Sets the restrictEditDocument attribute value. * * @param restrictEditDocument The restrictEditDocument to set. */ public void setRestrictEditDocument(boolean restrictEditDocument) { this.restrictEditDocument = restrictEditDocument; } /** * Gets the definitionDocumentTypes attribute. * * @return Returns the definitionDocumentTypes. */ public List<SecurityDefinitionDocumentType> getDefinitionDocumentTypes() { return definitionDocumentTypes; } /** * Sets the definitionDocumentTypes attribute value. * * @param definitionDocumentTypes The definitionDocumentTypes to set. */ public void setDefinitionDocumentTypes(List<SecurityDefinitionDocumentType> definitionDocumentTypes) { this.definitionDocumentTypes = definitionDocumentTypes; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("SecurityDefinition ["); if (id != null) { builder.append("id="); builder.append(id); builder.append(", "); } if (name != null) { builder.append("name="); builder.append(name); builder.append(", "); } if (description != null) { builder.append("description="); builder.append(description); builder.append(", "); } if (roleId != null) { builder.append("roleId="); builder.append(roleId); builder.append(", "); } if (attributeId != null) { builder.append("attributeId="); builder.append(attributeId); builder.append(", "); } builder.append("restrictViewAccountingLine="); builder.append(restrictViewAccountingLine); builder.append(", restrictEditAccountingLine="); builder.append(restrictEditAccountingLine); builder.append(", restrictViewDocument="); builder.append(restrictViewDocument); builder.append(", restrictEditDocument="); builder.append(restrictEditDocument); builder.append(", restrictViewNotesAndAttachments="); builder.append(restrictViewNotesAndAttachments); builder.append(", restrictLookup="); builder.append(restrictLookup); builder.append(", restrictGLInquiry="); builder.append(restrictGLInquiry); builder.append(", restrictLaborInquiry="); builder.append(restrictLaborInquiry); builder.append(", active="); builder.append(active); builder.append(", "); if (securityAttribute != null) { builder.append("securityAttribute="); builder.append(securityAttribute); builder.append(", "); } if (definitionDocumentTypes != null) { builder.append("definitionDocumentTypes="); builder.append(definitionDocumentTypes); } builder.append("]"); return builder.toString(); } }