001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.kfs.sec; 017 018 import java.util.HashMap; 019 import java.util.Map; 020 021 import org.kuali.kfs.coa.businessobject.Account; 022 import org.kuali.kfs.coa.businessobject.Chart; 023 import org.kuali.kfs.coa.businessobject.ObjectCode; 024 import org.kuali.kfs.coa.businessobject.ObjectConsolidation; 025 import org.kuali.kfs.coa.businessobject.ObjectLevel; 026 import org.kuali.kfs.coa.businessobject.Organization; 027 import org.kuali.kfs.coa.businessobject.ProjectCode; 028 import org.kuali.kfs.coa.businessobject.SubAccount; 029 import org.kuali.kfs.coa.businessobject.SubObjectCode; 030 import org.kuali.kfs.sec.businessobject.SecurityAttributeMetadata; 031 import org.kuali.kfs.sys.KFSConstants; 032 import org.kuali.kfs.sys.KFSPropertyConstants; 033 import org.kuali.rice.kns.service.ParameterConstants; 034 035 036 /** 037 * General Constants for Access Security Module 038 */ 039 public class SecConstants { 040 041 public final static String ACCESS_SECURITY_NAMESPACE_CODE = KFSConstants.CoreModuleNamespaces.ACCESS_SECURITY; 042 public final static String LABOR_MODULE_NAMESPACE_CODE = KFSConstants.OptionalModuleNamespaces.LABOR_DISTRIBUTION; 043 044 public final static String ACCESS_SECURITY_MODULE_ENABLED_PROPERTY_NAME = "module.access.security.enabled"; 045 046 public final static String ACCOUNTING_GROUP_ERROR_KEY_PREFIX = "SecurityGroupErrors:"; 047 public final static String ALL_DOCUMENT_TYPE_NAME = KFSConstants.ROOT_DOCUMENT_TYPE; 048 public final static String ALL_PARAMETER_DETAIL_COMPONENT = ParameterConstants.ALL_COMPONENT; 049 public final static String SECURITY_DEFINITION_ID_SEQUENCE_NAME = "SEC_SCRTY_DEFN_ID_SEQ"; 050 public final static String SECURITY_MODEL_ID_SEQUENCE_NAME = "SEC_SCRTY_MDL_ID_SEQ"; 051 public final static String ACCESS_DENIED_ERROR_FORWARD = "accessDeniedError"; 052 public final static String OPEN_DOCUMENT_SECURITY_ACCESS_DENIED_ERROR_KEY = "openDocumentSecurityAccessDeniedError"; 053 public final static String ACCESS_ERROR_STRING_REQUEST_KEY = "securityAccessErrorMessage"; 054 055 public final static Map<String, SecurityAttributeMetadata> SECURITY_ATTRIBUTE_METADATA_MAP = new HashMap<String, SecurityAttributeMetadata>(); 056 static { 057 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.ACCOUNT, new SecurityAttributeMetadata(Account.class, KFSPropertyConstants.ACCOUNT_NUMBER)); 058 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.CHART, new SecurityAttributeMetadata(Chart.class, KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE)); 059 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.CHART_DESCEND_HIERARCHY, new SecurityAttributeMetadata(Chart.class, KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE)); 060 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.OBJECT_CONSOLIDATION, new SecurityAttributeMetadata(ObjectConsolidation.class, KFSPropertyConstants.FINANCIAL_CONSOLIDATION_OBJECT_CODE)); 061 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.OBJECT_LEVEL, new SecurityAttributeMetadata(ObjectLevel.class, KFSPropertyConstants.FINANCIAL_OBJECT_LEVEL_CODE)); 062 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.ORGANIZATION, new SecurityAttributeMetadata(Organization.class, KFSPropertyConstants.ORGANIZATION_CODE)); 063 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.ORGANIZATION_DESCEND_HIERARCHY, new SecurityAttributeMetadata(Organization.class, KFSPropertyConstants.ORGANIZATION_CODE)); 064 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.PRINCIPAL_INVESTIGATOR, new SecurityAttributeMetadata(Account.class, KFSPropertyConstants.ACCOUNT_NUMBER)); 065 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.PROJECT_CODE, new SecurityAttributeMetadata(ProjectCode.class, KFSPropertyConstants.CODE)); 066 SECURITY_ATTRIBUTE_METADATA_MAP.put(SecurityAttributeNames.SUB_ACCOUNT, new SecurityAttributeMetadata(SubAccount.class, KFSPropertyConstants.SUB_ACCOUNT_NUMBER)); 067 } 068 069 public final static Map<String, SecurityAttributeMetadata> ATTRIBUTE_SIMULATION_MAP = new HashMap<String, SecurityAttributeMetadata>(); 070 static { 071 ATTRIBUTE_SIMULATION_MAP.put(SecurityAttributeNames.ACCOUNT, new SecurityAttributeMetadata(Account.class, KFSPropertyConstants.ACCOUNT_NUMBER, KFSPropertyConstants.ACCOUNT_NAME)); 072 ATTRIBUTE_SIMULATION_MAP.put(SecurityAttributeNames.CHART, new SecurityAttributeMetadata(Chart.class, KFSPropertyConstants.CHART_OF_ACCOUNTS_CODE, KFSPropertyConstants.FIN_CHART_OF_ACCOUNT_DESCRIPTION)); 073 ATTRIBUTE_SIMULATION_MAP.put(NonSecurityAttributeNames.OBJECT_CODE, new SecurityAttributeMetadata(ObjectCode.class, KFSPropertyConstants.FINANCIAL_OBJECT_CODE, KFSPropertyConstants.FINANCIAL_OBJECT_CODE_NAME)); 074 ATTRIBUTE_SIMULATION_MAP.put(SecurityAttributeNames.OBJECT_CONSOLIDATION, new SecurityAttributeMetadata(ObjectConsolidation.class, KFSPropertyConstants.FINANCIAL_CONSOLIDATION_OBJECT_CODE, KFSPropertyConstants.FIN_CONSOLIDATION_OBJECT_NAME)); 075 ATTRIBUTE_SIMULATION_MAP.put(SecurityAttributeNames.OBJECT_LEVEL, new SecurityAttributeMetadata(ObjectLevel.class, KFSPropertyConstants.FINANCIAL_OBJECT_LEVEL_CODE, KFSPropertyConstants.FINANCIAL_OBJECT_LEVEL_NAME)); 076 ATTRIBUTE_SIMULATION_MAP.put(SecurityAttributeNames.ORGANIZATION, new SecurityAttributeMetadata(Organization.class, KFSPropertyConstants.ORGANIZATION_CODE, KFSPropertyConstants.ORGANIZATION_NAME)); 077 ATTRIBUTE_SIMULATION_MAP.put(SecurityAttributeNames.PROJECT_CODE, new SecurityAttributeMetadata(ProjectCode.class, KFSPropertyConstants.PROJECT_CODE, KFSPropertyConstants.PROJECT_DESCRIPTION)); 078 ATTRIBUTE_SIMULATION_MAP.put(SecurityAttributeNames.SUB_ACCOUNT, new SecurityAttributeMetadata(SubAccount.class, KFSPropertyConstants.SUB_ACCOUNT_NUMBER, KFSPropertyConstants.SUB_ACCOUNT_NAME)); 079 ATTRIBUTE_SIMULATION_MAP.put(NonSecurityAttributeNames.SUB_OBJECT_CODE, new SecurityAttributeMetadata(SubObjectCode.class, KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE, KFSPropertyConstants.FINANCIAL_SUB_OBJECT_CODE_NAME)); 080 } 081 082 public class SecurityConstraintCodes { 083 public static final String ALLOWED = "A"; 084 public static final String DENIED = "D"; 085 } 086 087 public class SecurityDefinitionOperatorCodes { 088 public static final String EQUAL = "="; 089 public static final String NOT_EQUAL = "<>"; 090 public static final String LESS_THAN = "<"; 091 public static final String LESS_THAN_EQUAL = "<="; 092 public static final String GREATER_THAN = ">"; 093 public static final String GREATER_THAN_EQUAL = ">="; 094 } 095 096 public class SecurityAttributeNames { 097 public static final String ACCOUNT = "Account"; 098 public static final String CHART = "Chart"; 099 public static final String CHART_DESCEND_HIERARCHY = "Chart-Descend Hierarchy"; 100 public static final String OBJECT_CONSOLIDATION = "Object Consolidation"; 101 public static final String OBJECT_LEVEL = "Object Level"; 102 public static final String ORGANIZATION = "Organization"; 103 public static final String ORGANIZATION_DESCEND_HIERARCHY = "Organization-Descend Hierarchy"; 104 public static final String PRINCIPAL_INVESTIGATOR = "Principal Investigator"; 105 public static final String PROJECT_CODE = "Project Code"; 106 public static final String SUB_ACCOUNT = "Sub Account"; 107 } 108 109 public class NonSecurityAttributeNames { 110 public static final String OBJECT_CODE = "Object Code"; 111 public static final String SUB_OBJECT_CODE = "Sub-Object Code"; 112 } 113 114 public class SecurityParameterNames { 115 public static final String ACCESS_SECURITY_DOCUMENT_TYPES = "ACCESS_SECURITY_DOCUMENT_TYPES"; 116 public static final String ENABLE_ACCESS_SECURITY = "ENABLE_ACCESS_SECURITY"; 117 public static final String ALWAYS_ALLOW_INITIATOR_DOCUMENT_ACCESS_IND = "ALWAYS_ALLOW_INITIATOR_DOCUMENT_ACCESS_IND"; 118 public static final String ALWAYS_ALLOW_INITIATOR_LINE_ACCESS_IND = "ALWAYS_ALLOW_INITIATOR_LINE_ACCESS_IND"; 119 public static final String ALWAYS_ALLOW_FISCAL_OFFICER_LINE_ACCESS_IND = "ALWAYS_ALLOW_FISCAL_OFFICER_LINE_ACCESS_IND"; 120 public static final String ALWAYS_ALLOW_PRINCIPAL_INVESTIGATOR_LINE_ACCESS_IND = "ALWAYS_ALLOW_PRINCIPAL_INVESTIGATOR_LINE_ACCESS_IND"; 121 } 122 123 public class SecurityTemplateNames { 124 public static final String VIEW_DOCUMENT_FIELD_VALUE = "View Document with Field Value"; 125 public static final String VIEW_ACCOUNTING_LINE_FIELD_VALUE = "View Accounting Line with Field Value"; 126 public static final String VIEW_NOTES_ATTACHMENTS_FIELD_VALUE = "View Notes/Attachments with Field Value"; 127 public static final String EDIT_DOCUMENT_FIELD_VALUE = "Edit Document with Field Value"; 128 public static final String EDIT_ACCOUNTING_LINE_FIELD_VALUE = "Edit Accounting Line with Field Value"; 129 public static final String LOOKUP_FIELD_VALUE = "Lookup with Field Value"; 130 public static final String INQUIRY_FIELD_VALUE = "Balance Inquiry with Field Value"; 131 } 132 133 public class SecurityTypes { 134 public static final String DEFAULT_ROLE_TYPE = "1"; 135 @Deprecated // Similar to above, KIM IDs *NEVER* should be hard-coded 136 public static final String SECURITY_DEFINITION_ROLE_TYPE = "KFSSEC4"; 137 } 138 139 public class SecurityValueSpecialCharacters { 140 public static final String MULTI_VALUE_SEPERATION_CHARACTER = ";"; 141 public static final String WILDCARD_CHARACTER = "*"; 142 } 143 }