public ProcessDefinitionEntity getProcessDefinition(String processDefinitionKey) { for (ProcessDefinitionEntity processDefinition : processDefinitions) { if (processDefinition.getKey().equals(processDefinitionKey)) { return processDefinition; } } return null; }
protected String getProcessDefinitionKey(ExecutionEntity execution) { ProcessDefinitionEntity definition = execution.getProcessDefinition(); if (definition != null) { return definition.getKey(); } else { return null; } }
@Override protected void definitionAddedToDeploymentCache(DeploymentEntity deployment, ProcessDefinitionEntity definition, Properties properties) { List<JobDeclaration<?, ?>> declarations = properties.get(JOB_DECLARATIONS_PROPERTY).get(definition.getKey()); updateJobDeclarations(declarations, definition, deployment.isNew()); ProcessDefinitionEntity latestDefinition = findLatestDefinitionByKeyAndTenantId(definition.getKey(), definition.getTenantId()); if (deployment.isNew()) { adjustStartEventSubscriptions(definition, latestDefinition); } // add "authorizations" addAuthorizations(definition); }
protected void checkAuthorizations(CommandContext commandContext, ProcessDefinitionEntity sourceDefinition, ProcessDefinitionEntity targetDefinition, Collection<String> processInstanceIds) { CompositePermissionCheck migrateInstanceCheck = new PermissionCheckBuilder() .conjunctive() .atomicCheckForResourceId(Resources.PROCESS_DEFINITION, sourceDefinition.getKey(), Permissions.MIGRATE_INSTANCE) .atomicCheckForResourceId(Resources.PROCESS_DEFINITION, targetDefinition.getKey(), Permissions.MIGRATE_INSTANCE) .build(); commandContext.getAuthorizationManager().checkAuthorization(migrateInstanceCheck); }
protected void checkAuthorizations(CommandContext commandContext, ProcessDefinitionEntity sourceDefinition, ProcessDefinitionEntity targetDefinition, Collection<String> processInstanceIds) { CompositePermissionCheck migrateInstanceCheck = new PermissionCheckBuilder() .conjunctive() .atomicCheckForResourceId(Resources.PROCESS_DEFINITION, sourceDefinition.getKey(), Permissions.MIGRATE_INSTANCE) .atomicCheckForResourceId(Resources.PROCESS_DEFINITION, targetDefinition.getKey(), Permissions.MIGRATE_INSTANCE) .build(); commandContext.getAuthorizationManager().checkAuthorization(migrateInstanceCheck); }
@SuppressWarnings("unchecked") protected void parseTimerStartEventDefinition(Element timerEventDefinition, ActivityImpl timerActivity, ProcessDefinitionEntity processDefinition) { timerActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.START_EVENT_TIMER); TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, timerActivity, TimerStartEventJobHandler.TYPE); timerDeclaration.setRawJobHandlerConfiguration(processDefinition.getKey()); List<TimerDeclarationImpl> timerDeclarations = (List<TimerDeclarationImpl>) processDefinition.getProperty(PROPERTYNAME_START_TIMER); if (timerDeclarations == null) { timerDeclarations = new ArrayList<TimerDeclarationImpl>(); processDefinition.setProperty(PROPERTYNAME_START_TIMER, timerDeclarations); } timerDeclarations.add(timerDeclaration); }
@SuppressWarnings("unchecked") protected void parseTimerStartEventDefinition(Element timerEventDefinition, ActivityImpl timerActivity, ProcessDefinitionEntity processDefinition) { timerActivity.getProperties().set(BpmnProperties.TYPE, ActivityTypes.START_EVENT_TIMER); TimerDeclarationImpl timerDeclaration = parseTimer(timerEventDefinition, timerActivity, TimerStartEventJobHandler.TYPE); timerDeclaration.setRawJobHandlerConfiguration(processDefinition.getKey()); List<TimerDeclarationImpl> timerDeclarations = (List<TimerDeclarationImpl>) processDefinition.getProperty(PROPERTYNAME_START_TIMER); if (timerDeclarations == null) { timerDeclarations = new ArrayList<TimerDeclarationImpl>(); processDefinition.setProperty(PROPERTYNAME_START_TIMER, timerDeclarations); } timerDeclarations.add(timerDeclaration); }
@Override public void checkUpdateProcessInstanceByProcessDefinitionId(String processDefinitionId) { if (getAuthorizationManager().isAuthorizationEnabled()) { ProcessDefinitionEntity processDefinition = findLatestProcessDefinitionById(processDefinitionId); if (processDefinition != null) { checkUpdateProcessInstanceByProcessDefinitionKey(processDefinition.getKey()); } } }
protected void logUserOperation(CommandContext commandContext, ProcessDefinitionEntity processDefinitionEntity) { PropertyChange propertyChange = new PropertyChange("historyTimeToLive", processDefinitionEntity.getHistoryTimeToLive(), historyTimeToLive); commandContext.getOperationLogManager() .logProcessDefinitionOperation(UserOperationLogEntry.OPERATION_TYPE_UPDATE_HISTORY_TIME_TO_LIVE, processDefinitionId, processDefinitionEntity.getKey(), propertyChange); }
protected void logUserOperation(CommandContext commandContext, ProcessDefinitionEntity processDefinitionEntity) { PropertyChange propertyChange = new PropertyChange("historyTimeToLive", processDefinitionEntity.getHistoryTimeToLive(), historyTimeToLive); commandContext.getOperationLogManager() .logProcessDefinitionOperation(UserOperationLogEntry.OPERATION_TYPE_UPDATE_HISTORY_TIME_TO_LIVE, processDefinitionId, processDefinitionEntity.getKey(), propertyChange); }
@Override public void checkUpdateProcessDefinitionById(String processDefinitionId) { if (getAuthorizationManager().isAuthorizationEnabled()) { ProcessDefinitionEntity processDefinition = findLatestProcessDefinitionById(processDefinitionId); if (processDefinition != null) { checkUpdateProcessDefinitionByKey(processDefinition.getKey()); } } }
@Override public void checkDeleteProcessDefinitionById(String processDefinitionId) { if (getAuthorizationManager().isAuthorizationEnabled()) { ProcessDefinitionEntity processDefinition = findLatestProcessDefinitionById(processDefinitionId); if (processDefinition != null) { checkDeleteProcessDefinitionByKey(processDefinition.getKey()); } } }
@Override public void checkDeleteProcessDefinitionById(String processDefinitionId) { if (getAuthorizationManager().isAuthorizationEnabled()) { ProcessDefinitionEntity processDefinition = findLatestProcessDefinitionById(processDefinitionId); if (processDefinition != null) { checkDeleteProcessDefinitionByKey(processDefinition.getKey()); } } }
protected boolean isLatestProcessDefinition(ProcessDefinitionEntity processDefinition) { ProcessDefinitionManager processDefinitionManager = Context.getCommandContext().getProcessDefinitionManager(); String key = processDefinition.getKey(); String tenantId = processDefinition.getTenantId(); ProcessDefinitionEntity latestProcessDefinition = processDefinitionManager.findLatestDefinitionByKeyAndTenantId(key, tenantId); return processDefinition.getId().equals(latestProcessDefinition.getId()); }
protected boolean isLatestProcessDefinition(ProcessDefinitionEntity processDefinition) { ProcessDefinitionManager processDefinitionManager = Context.getCommandContext().getProcessDefinitionManager(); String key = processDefinition.getKey(); String tenantId = processDefinition.getTenantId(); ProcessDefinitionEntity latestProcessDefinition = processDefinitionManager.findLatestDefinitionByKeyAndTenantId(key, tenantId); return processDefinition.getId().equals(latestProcessDefinition.getId()); }
public UserOperationLogContextEntryBuilder inContextOf(ProcessDefinitionEntity processDefinition) { entry.setProcessDefinitionId(processDefinition.getId()); entry.setProcessDefinitionKey(processDefinition.getKey()); entry.setDeploymentId(processDefinition.getDeploymentId()); return this; }
protected boolean ensureHistoryReadOnProcessDefinition(HistoricActivityStatisticsQueryImpl query) { CommandContext commandContext = getCommandContext(); if(isAuthorizationEnabled() && getCurrentAuthentication() != null && commandContext.isAuthorizationCheckEnabled()) { String processDefinitionId = query.getProcessDefinitionId(); ProcessDefinitionEntity definition = getProcessDefinitionManager().findLatestProcessDefinitionById(processDefinitionId); if (definition == null) { return false; } return getAuthorizationManager().isAuthorized(READ_HISTORY, PROCESS_DEFINITION, definition.getKey()); } return true; }
public UserOperationLogContextEntryBuilder inContextOf(ExecutionEntity execution) { entry.setProcessInstanceId(execution.getProcessInstanceId()); entry.setRootProcessInstanceId(execution.getRootProcessInstanceId()); entry.setProcessDefinitionId(execution.getProcessDefinitionId()); ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) execution.getProcessDefinition(); entry.setProcessDefinitionKey(processDefinition.getKey()); entry.setDeploymentId(processDefinition.getDeploymentId()); return this; }
protected void checkReadProcessDefinition(ActivityStatisticsQueryImpl query) { CommandContext commandContext = getCommandContext(); if (isAuthorizationEnabled() && getCurrentAuthentication() != null && commandContext.isAuthorizationCheckEnabled()) { String processDefinitionId = query.getProcessDefinitionId(); ProcessDefinitionEntity definition = getProcessDefinitionManager().findLatestProcessDefinitionById(processDefinitionId); ensureNotNull("no deployed process definition found with id '" + processDefinitionId + "'", "processDefinition", definition); getAuthorizationManager().checkAuthorization(READ, PROCESS_DEFINITION, definition.getKey()); } }
public UserOperationLogContextEntryBuilder inContextOf(ExecutionEntity execution) { entry.setProcessInstanceId(execution.getProcessInstanceId()); entry.setRootProcessInstanceId(execution.getRootProcessInstanceId()); entry.setProcessDefinitionId(execution.getProcessDefinitionId()); ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) execution.getProcessDefinition(); entry.setProcessDefinitionKey(processDefinition.getKey()); entry.setDeploymentId(processDefinition.getDeploymentId()); return this; }