001/** 002 * Copyright 2005-2015 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 */ 016package org.kuali.rice.kim.api; 017 018import org.kuali.rice.core.api.CoreConstants; 019import org.kuali.rice.core.api.membership.MemberType; 020 021import java.util.HashMap; 022import java.util.Map; 023 024public final class KimConstants { 025 026 public static final String KIM_MODULE_NAMESPACE = "KIM"; 027 028 public static final String NAMESPACE_CODE = "KR-IDM"; 029 public static final String KIM_TYPE_DEFAULT_NAMESPACE = "KUALI"; 030 public static final String KIM_TYPE_RICE_NAMESPACE = "RICE"; 031 public static final String KIM_TYPE_DEFAULT_NAME = "Default"; 032 public static final String KIM_GROUP_DEFAULT_NAMESPACE_CODE = "KUALI"; 033 public static final String KIM_GROUP_WORKFLOW_NAMESPACE_CODE = "KR-WKFLW"; 034 public static final String RESTRICTED_DATA_MASK = "Xxxxxx"; 035 036 public static final String KIM_PERSON_SERVICE = "personService"; 037 public static final String DEFAULT_KIM_TYPE_SERVICE = "kimTypeService"; 038 039 //Kim Attribute Boolean representations 040 public static final String KIM_ATTRIBUTE_BOOLEAN_TRUE_STR_VALUE_DISPLAY = "Yes"; 041 public static final String KIM_ATTRIBUTE_BOOLEAN_FALSE_STR_VALUE_DISPLAY = "No"; 042 public static final String KIM_ATTRIBUTE_BOOLEAN_TRUE_STR_VALUE = "Y"; 043 public static final String KIM_ATTRIBUTE_BOOLEAN_FALSE_STR_VALUE = "N"; 044 045 public static final String KIM_ENABLE_HISTORY_KEY = "kim.enable.history"; 046 047 public static final class EntityTypes { 048 public static final String PERSON = "PERSON"; 049 public static final String SYSTEM = "SYSTEM"; 050 051 private EntityTypes() { 052 throw new UnsupportedOperationException("do not call"); 053 } 054 } 055 056 public static final class AddressTypes { 057 public static final String HOME = "HM"; 058 public static final String WORK = "WRK"; 059 public static final String OTHER= "OTH"; 060 061 private AddressTypes() { 062 throw new UnsupportedOperationException("do not call"); 063 } 064 } 065 066 public static final class NameTypes { 067 public static final String PREFERRED = "PRFR"; 068 public static final String PRIMARY = "PRM"; 069 public static final String OTHER= "OTH"; 070 071 private NameTypes() { 072 throw new UnsupportedOperationException("do not call"); 073 } 074 } 075 076 public static final class GenderChangeCodes { 077 public static final String MALE_TO_FEMALE = "ChangeFemale"; 078 public static final String FEMALE_TO_MALE = "ChangeMale"; 079 080 private GenderChangeCodes() { 081 throw new UnsupportedOperationException("do not call"); 082 } 083 } 084 085 public static final class PersonExternalIdentifierTypes { 086 public static final String TAX = "TAX"; 087 088 private PersonExternalIdentifierTypes() { 089 throw new UnsupportedOperationException("do not call"); 090 } 091 } 092 public static final class PersonAffiliationTypes { 093 public static final String STAFF_AFFILIATION_TYPE = "STAFF"; 094 public static final String STUDENT_AFFILIATION_TYPE = "STUDENT"; 095 public static final String AFFILIATE_AFFILIATION_TYPE = "AFFILIATE"; 096 public static final String FACULTY_AFFILIATION_TYPE = "FACULTY"; 097 098 private PersonAffiliationTypes() { 099 throw new UnsupportedOperationException("do not call"); 100 } 101 } 102 103 public static final class PermissionTemplateNames { 104 public static final String FULL_UNMASK_FIELD = "Full Unmask Field"; 105 public static final String PARTIAL_UNMASK_FIELD = "Partial Unmask Field"; 106 public static final String VIEW_MAINTENANCE_INQUIRY_FIELD = "View Inquiry or Maintenance Document Field"; 107 public static final String MODIFY_FIELD = "Modify Maintenance Document Field"; 108 public static final String VIEW_SECTION = "View Inquiry or Maintenance Document Section"; 109 public static final String MODIFY_SECTION = "Modify Maintenance Document Section"; 110 public static final String CREATE_MAINTAIN_RECORDS = "Create / Maintain Record(s)"; 111 112 public static final String EDIT_DOCUMENT = "Edit Document"; 113 public static final String COPY_DOCUMENT = "Copy Document"; 114 public static final String OPEN_DOCUMENT = "Open Document"; 115 public static final String TAKE_REQUESTED_ACTION = "Take Requested Action"; 116 public static final String INITIATE_DOCUMENT = "Initiate Document"; 117 public static final String BLANKET_APPROVE_DOCUMENT ="Blanket Approve Document"; 118 public static final String CANCEL_DOCUMENT ="Cancel Document"; 119 public static final String SAVE_DOCUMENT ="Save Document"; 120 public static final String ROUTE_DOCUMENT ="Route Document"; 121 public static final String APPROVE_DOCUMENT = "Approve Document"; 122 public static final String AD_HOC_REVIEW_DOCUMENT = "Ad Hoc Review Document"; 123 public static final String ADD_MESSAGE_TO_ROUTE_LOG = "Add Message to Route Log"; 124 125 public static final String ADD_NOTE_ATTACHMENT = "Add Note / Attachment"; 126 public static final String VIEW_NOTE_ATTACHMENT = "View Note / Attachment"; 127 public static final String DELETE_NOTE_ATTACHMENT = "Delete Note / Attachment"; 128 129 public static final String USE_TRANSACTIONAL_DOCUMENT = "Use Transactional Document"; 130 public static final String USE_VIEW = "Use View"; 131 132 public static final String POPULATE_GROUP = "Populate Group"; 133 public static final String ASSIGN_ROLE = "Assign Role"; 134 public static final String GRANT_PERMISSION = "Grant Permission"; 135 public static final String GRANT_RESPONSIBILITY = "Grant Responsibility"; 136 137 public static final String LOOK_UP_RECORDS = "Look Up Records"; 138 public static final String INQUIRE_INTO_RECORDS = "Inquire Into Records"; 139 public static final String USE_SCREEN = "Use Screen"; 140 public static final String BACKDOOR_RESTRICTION = "Backdoor Restriction"; 141 142 public static final String PERFORM_CUSTOM_MAINTENANCE_DOCUMENT_FUNCTION ="Perform Custom Maintenance Document Function"; 143 public static final String MAINTAIN_SYSTEM_PARAMETER = "Maintain System Parameter"; 144 public static final String SEND_AD_HOC_REQUEST ="Send Ad Hoc Request"; 145 146 public static final String EDIT_VIEW = "Edit View"; 147 public static final String OPEN_VIEW = "Open View"; 148 public static final String EDIT_FIELD = "Edit Field"; 149 public static final String VIEW_FIELD = "View Field"; 150 public static final String EDIT_GROUP = "Edit Group"; 151 public static final String VIEW_GROUP = "View Group"; 152 public static final String EDIT_WIDGET = "Edit Widget"; 153 public static final String VIEW_WIDGET = "View Widget"; 154 public static final String PERFORM_ACTION = "Perform Action"; 155 public static final String EDIT_LINE = "Edit Line"; 156 public static final String VIEW_LINE = "View Line"; 157 public static final String EDIT_LINE_FIELD = "Edit Line Field"; 158 public static final String VIEW_LINE_FIELD = "View Line Field"; 159 public static final String PERFORM_LINE_ACTION = "Perform Line Action"; 160 // KULRICE-12281: Turn off the ability to export results from the person lookup 161 public static final String VIEW_RESULTS_EXPORT_ACTION = "Export Records"; 162 163 private PermissionTemplateNames() { 164 throw new UnsupportedOperationException("do not call"); 165 } 166 } 167 168 public final static class PermissionNames { 169 public static final String LOG_IN = "Log In Kuali Portal"; 170 public static final String ADMIN_PESSIMISTIC_LOCKING = "Administer Pessimistic Locking"; 171 public static final String OVERRIDE_ENTITY_PRIVACY_PREFERENCES = "Override Entity Privacy Preferences"; 172 public static final String MODIFY_ENTITY = "Modify Entity"; 173 public static final String ACCESS_LOCKED_MODULE = "Access Locked Module"; 174 175 private PermissionNames() { 176 throw new UnsupportedOperationException("do not call"); 177 } 178 } 179 180 public final static class KimUIConstants { 181 public static final String NAME_VALUE_SEPARATOR = " : "; 182 public static final String COMMA_SEPARATOR = ", "; 183 public static final String OR_OPERATOR = "|"; 184 public static final String URL_SEPARATOR = "/"; 185 public static final String PARAMETERIZED_URL_SEPARATOR = "%2F"; 186 public static final String KIM_URL_KEY = "kim.url"; 187 public static final String KIM_APPLICATION = "kim"; 188 public static final String MEMBER_ID_PREFIX = PrimaryKeyConstants.MEMBER_ID+"."; 189 public static final String MEMBER_NAME = "memberName"; 190 public static final String MEMBER_NAMESPACE_CODE = "memberNamespaceCode"; 191 public static final String MEMBER_TYPE_PRINCIPAL = "Principal"; 192 public static final String MEMBER_TYPE_GROUP = "Group"; 193 public static final String MEMBER_TYPE_ROLE = "Role"; 194 public static final Map<String, String> KIM_MEMBER_TYPES_MAP = getKimMemberTypesMap(); 195 private static Map<String, String> getKimMemberTypesMap() { 196 Map<String, String> kimDocumentActionsMap = new HashMap<String, String>(); 197 kimDocumentActionsMap.put(MemberType.PRINCIPAL.getCode(), MEMBER_TYPE_PRINCIPAL); 198 kimDocumentActionsMap.put(MemberType.GROUP.getCode(), MEMBER_TYPE_GROUP); 199 kimDocumentActionsMap.put(MemberType.ROLE.getCode(), MEMBER_TYPE_ROLE); 200 return kimDocumentActionsMap; 201 } 202 203 public static final String KIM_ROLE_DOCUMENT_TYPE_NAME = "IdentityManagementRoleDocument"; 204 public static final String KIM_GROUP_DOCUMENT_TYPE_NAME = "IdentityManagementGroupDocument"; 205 public static final String KIM_PERSON_DOCUMENT_TYPE_NAME = "IdentityManagementPersonDocument"; 206 public static final String KIM_PERMISSION_DOCUMENT_TYPE_NAME = "IdentityManagementGenericPermissionMaintenanceDocument"; 207 public static final String KIM_REVIEW_RESPONSIBILITY_DOCUMENT_TYPE_NAME = "IdentityManagementReviewResponsibilityMaintenanceDocument"; 208 public static final String KIM_ROLE_DOCUMENT_SHORT_KEY = "IMRD"; 209 public static final String KIM_GROUP_DOCUMENT_SHORT_KEY = "IMGD"; 210 public static final String KIM_PERSON_DOCUMENT_SHORT_KEY = "IMPD"; 211 public static final String KIM_GROUP_INQUIRY_SORT_DESC_VALUE = "KIM_GROUP_INQUIRY_SORT_DESC_VALUE"; 212 public static final String KIM_GROUP_INQUIRY_SORT_PREV_COL_NM = "KIM_GROUP_INQUIRY_SORT_PREV_COL_NM"; 213 public static final String KIM_ROLE_INQUIRY_SORT_DESC_VALUE = "KIM_ROLE_INQUIRY_SORT_DESC_VALUE"; 214 public static final String KIM_ROLE_INQUIRY_SORT_PREV_COL_NM = "KIM_ROLE_INQUIRY_SORT_PREV_COL_NM"; 215 216 public static final String KIM_ROLE_DOCUMENT_ACTION = "identityManagementRoleDocument.do"; 217 public static final String KIM_ROLE_INQUIRY_ACTION = "identityManagementRoleInquiry.do"; 218 public static final String KIM_PERSON_DOCUMENT_ACTION = "identityManagementPersonDocument.do"; 219 public static final String KIM_PERSON_INQUIRY_ACTION = "identityManagementPersonInquiry.do"; 220 public static final String KIM_GROUP_DOCUMENT_ACTION = "identityManagementGroupDocument.do"; 221 public static final String KIM_GROUP_INQUIRY_ACTION = "identityManagementGroupInquiry.do"; 222 public static final Map<String, String> KIM_DOCUMENTS_ACTIONS_MAP = getDocumentActionsMap(); 223 private static Map<String, String> getDocumentActionsMap() { 224 Map<String, String> kimDocumentActionsMap = new HashMap<String, String>(); 225 kimDocumentActionsMap.put(KIM_ROLE_DOCUMENT_SHORT_KEY, KIM_ROLE_DOCUMENT_ACTION); 226 kimDocumentActionsMap.put(KIM_GROUP_DOCUMENT_SHORT_KEY, KIM_GROUP_DOCUMENT_ACTION); 227 kimDocumentActionsMap.put(KIM_PERSON_DOCUMENT_SHORT_KEY, KIM_PERSON_DOCUMENT_ACTION); 228 return kimDocumentActionsMap; 229 } 230 231 public static final Map<String, String> KIM_DOCUMENT_TYPE_NAMES_MAP = getDocumentTypeNamesMap(); 232 private static Map<String, String> getDocumentTypeNamesMap() { 233 Map<String, String> kimDocumentTypeNamesMap = new HashMap<String, String>(); 234 kimDocumentTypeNamesMap.put(KIM_ROLE_DOCUMENT_SHORT_KEY, KIM_ROLE_DOCUMENT_TYPE_NAME); 235 kimDocumentTypeNamesMap.put(KIM_GROUP_DOCUMENT_SHORT_KEY, KIM_GROUP_DOCUMENT_TYPE_NAME); 236 kimDocumentTypeNamesMap.put(KIM_PERSON_DOCUMENT_SHORT_KEY, KIM_PERSON_DOCUMENT_TYPE_NAME); 237 return kimDocumentTypeNamesMap; 238 } 239 240 public static final String DELEGATION_PRIMARY = "P"; 241 public static final String DELEGATION_SECONDARY = "S"; 242 public static final String DELEGATION_PRIMARY_LABEL = "Primary"; 243 public static final String DELEGATION_SECONDARY_LABEL = "Secondary"; 244 245 public static final Map<String, String> DELEGATION_TYPES = getDelegationTypesMap(); 246 private static Map<String, String> getDelegationTypesMap() { 247 Map<String, String> delegationTypesMap = new HashMap<String, String>(); 248 delegationTypesMap.put(DELEGATION_PRIMARY, DELEGATION_PRIMARY_LABEL); 249 delegationTypesMap.put(DELEGATION_SECONDARY, DELEGATION_SECONDARY_LABEL); 250 return delegationTypesMap; 251 } 252 253 public static final String ROLE_LOOKUPABLE_IMPL = "roleLookupable"; 254 public static final String KIM_DOCUMENT_ROLE_MEMBER_LOOKUPABLE_IMPL = "kimDocumentRoleMemberLookupable"; 255 public static final String ROLE_MEMBER_LOOKUPABLE_IMPL = "roleMemberImplLookupable"; 256 public static final String ROLE_MEMBERS_COLLECTION_NAME = "roleMembers"; 257 258 private KimUIConstants() { 259 throw new UnsupportedOperationException("do not call"); 260 } 261 } 262 263 public final static class PrimaryKeyConstants { 264 public static final String ENTITY_ID = "id"; 265 public static final String SUB_ENTITY_ID = "entityId"; 266 public static final String PRINCIPAL_ID = "principalId"; 267 public static final String ROLE_ID = "id"; 268 public static final String SUB_ROLE_ID = "roleId"; 269 public static final String GROUP_ID = "id"; 270 public static final String KIM_TYPE_ID = "id"; 271 public static final String RESPONSIBILITY_ID = "id"; 272 public static final String PERMISSION_ID = "id"; 273 public static final String DELEGATION_ID = "delegationId"; 274 public static final String MEMBER_ID = "memberId"; 275 public static final String DELEGATION_MEMBER_ID = "delegationMemberId"; 276 public static final String ROLE_MEMBER_ID = "roleMemberId"; 277 public static final String ROLE_RESPONSIBILITY_ID = "roleResponsibilityId"; 278 public static final String ROLE_RESPONSIBILITY_ACTION_ID = "roleResponsibilityActionId"; 279 public static final String KIM_PERMISSION_REQUIRED_ATTR_ID = "kimPermissionRequiredAttributeId"; 280 public static final String KIM_ATTRIBUTE_ID = "id"; 281 public static final String KIM_TYPE_CODE ="id"; 282 public static final String ID = "id"; 283 public static final String CODE = "code"; 284 285 private PrimaryKeyConstants() { 286 throw new UnsupportedOperationException("do not call"); 287 } 288 } 289 290 public final static class UniqueKeyConstants { 291 public static final String NAMESPACE_CODE = "namespaceCode"; 292 public static final String PRINCIPAL_NAME = "principalName"; 293 public static final String GROUP_NAME = "name"; 294 public static final String ROLE_NAME = "name"; 295 public static final String PERMISSION_NAME = "name"; 296 public static final String RESPONSIBILITY_NAME = "name"; 297 public static final String PERMISSION_TEMPLATE_NAME = "name"; 298 public static final String RESPONSIBILITY_TEMPLATE_NAME = "name"; 299 public static final String NAME = "name"; 300 301 private UniqueKeyConstants() { 302 throw new UnsupportedOperationException("do not call"); 303 } 304 } 305 306 public final static class SequenceNames { 307 public static final String KRIM_PRNCPL_ID_S = "KRIM_PRNCPL_ID_S"; 308 public static final String KRIM_ENTITY_ID_S = "KRIM_ENTITY_ID_S"; 309 public static final String KRIM_ROLE_ID_S = "KRIM_ROLE_ID_S"; 310 public static final String KRIM_GROUP_ID_S = "KRIM_GRP_ID_S"; 311 public static final String KRIM_ROLE_PERM_ID_S = "KRIM_ROLE_PERM_ID_S"; 312 public static final String KRIM_ROLE_RSP_ID_S = "KRIM_ROLE_RSP_ID_S"; 313 public static final String KRIM_ROLE_MBR_ID_S = "KRIM_ROLE_MBR_ID_S"; 314 public static final String KRIM_DLGN_MBR_ID_S = "KRIM_DLGN_MBR_ID_S"; 315 public static final String KRIM_ROLE_RSP_ACTN_ID_S = "KRIM_ROLE_RSP_ACTN_ID_S"; 316 public static final String KRIM_DLGN_ID_S = "KRIM_DLGN_ID_S"; 317 public static final String KRIM_PERM_ID_S = "KRIM_PERM_ID_S"; 318 public static final String KRIM_RSP_ID_S = "KRIM_RSP_ID_S"; 319 public static final String KRIM_ATTR_DATA_ID_S = "KRIM_ATTR_DATA_ID_S"; 320 321 private SequenceNames() { 322 throw new UnsupportedOperationException("do not call"); 323 } 324 } 325 326 public final static class AttributeConstants { 327 public static final String PRINCIPAL_ID = "principalId"; 328 public static final String PRINCIPAL_NAME = "principalName"; 329 public static final String BUTTON_NAME = "buttonName"; 330 public static final String BEAN_NAME = "beanName"; 331 public static final String ACTION_CLASS = "actionClass"; 332 public static final String NAME = "name"; 333 public static final String NAMESPACE_CODE = "namespaceCode"; 334 public static final String COMPONENT_NAME = "componentName"; 335 public static final String PROPERTY_NAME = "propertyName"; 336 public static final String EXISTING_RECORDS_ONLY = "existingRecordsOnly"; 337 public static final String CREATED_BY_SELF = "createdBySelf"; 338 public static final String CREATED_BY_SELF_ONLY = "createdBySelfOnly"; 339 public static final String ATTACHMENT_TYPE_CODE = "attachmentTypeCode"; 340 public static final String EDIT_MODE = "editMode"; 341 public static final String PARAMETER_NAME = "parameterName"; 342 public static final String CAMPUS_CODE = "campusCode"; 343 public static final String ACTION_REQUEST_CD = "actionRequestCd"; 344 public static final String ROUTE_STATUS_CODE = "routeStatusCode"; 345 public static final String APP_DOC_STATUS = "appDocStatus"; 346 public static final String ROUTE_NODE_NAME = "routeNodeName"; 347 public static final String ROLE_NAME = "roleName"; 348 public static final String PERMISSION_NAME = "permissionName"; 349 public static final String RESPONSIBILITY_NAME = "responsibilityName"; 350 public static final String ATTRIBUTE_NAME = "attributeName"; 351 public static final String GROUP_NAME = "groupName"; 352 public static final String REQUIRED = "required"; 353 public static final String ACTION_DETAILS_AT_ROLE_MEMBER_LEVEL = "actionDetailsAtRoleMemberLevel"; 354 public static final String DOCUMENT_NUMBER = "documentNumber"; 355 public static final String DOCUMENT_TYPE_NAME = "documentTypeName"; 356 public static final String APP_CODE = "appCode"; 357 public static final String SECTION_ID = "sectionId"; 358 public static final String KIM_TYPE_ID = PrimaryKeyConstants.KIM_TYPE_ID; 359 public static final String KIM_TYPE_NAME = "kimTypeName"; 360 public static final String QUALIFIER_RESOLVER_PROVIDED_IDENTIFIER = "qualifierResolverProvidedIdentifier"; 361 public static final String VIEW_ID = "viewId"; 362 public static final String ACTION_EVENT = "actionEvent"; 363 public static final String COLLECTION_PROPERTY_NAME = "collectionPropertyName"; 364 public static final String FIELD_ID = "fieldId"; 365 public static final String GROUP_ID = "groupId"; 366 public static final String WIDGET_ID = "widgetId"; 367 } 368 369 /** 370 * 371 * KimGroupS can contain other KimGroupS and KimPrincipalS. 372 * Use these constants to flags their members with the appropriate member 373 * type code. 374 * 375 * @author Kuali Rice Team (rice.collab@kuali.org) 376 */ 377 public final static class KimGroupMemberTypes { 378 379 /** 380 * For group members that are themselves groups 381 */ 382 public static final MemberType GROUP_MEMBER_TYPE = MemberType.GROUP; 383 384 /** 385 * For group members that are principals 386 */ 387 public static final MemberType PRINCIPAL_MEMBER_TYPE = MemberType.PRINCIPAL; 388 389 private KimGroupMemberTypes() { 390 throw new UnsupportedOperationException("do not call"); 391 } 392 } 393 394 private KimConstants() { 395 throw new UnsupportedOperationException("do not call"); 396 } 397 398 public final static String SERVICE_PATH_SOAP = "soap/" + Namespaces.MODULE_NAME + "/" + CoreConstants.Versions.VERSION_2_0; 399 400 public final static class Namespaces { 401 public static final String MODULE_NAME = "kim"; 402 public static final String KIM_NAMESPACE_PREFIX = CoreConstants.Namespaces.ROOT_NAMESPACE_PREFIX + "/" + MODULE_NAME; 403 404 public static final String KIM_NAMESPACE_2_0 = KIM_NAMESPACE_PREFIX + "/" + CoreConstants.Versions.VERSION_2_0; 405 } 406 407 public static class ParameterKey { 408 public static final String SHOW_BLANK_QUALIFIERS = "KIM_SHOW_BLANK_QUALIFIERS"; 409 } 410 411}