@Override public void addUserIdentityLink(Task task, IdentityLink identityLink) { IdentityLinkUtil.handleTaskIdentityLinkAddition((TaskEntity) task, (IdentityLinkEntity) identityLink); }
@Override public void addCandidateGroups(Task task, List<IdentityLink> candidateGroups) { List<IdentityLinkEntity> identityLinks = new ArrayList<>(); for (IdentityLink identityLink : candidateGroups) { identityLinks.add((IdentityLinkEntity) identityLink); } IdentityLinkUtil.handleTaskIdentityLinkAdditions((TaskEntity) task, identityLinks); }
@Override public void deleteUserIdentityLink(Task task, IdentityLink identityLink) { List<IdentityLinkEntity> identityLinks = new ArrayList<>(); identityLinks.add((IdentityLinkEntity) identityLink); IdentityLinkUtil.handleTaskIdentityLinkDeletions((TaskEntity) task, identityLinks, true); }
@Override public Void execute(CommandContext commandContext) { CaseInstanceEntityManager caseInstanceEntityManager = CommandContextUtil.getCaseInstanceEntityManager(commandContext); CaseInstanceEntity caseInstance = caseInstanceEntityManager.findById(caseInstanceId); if (caseInstance == null) { throw new FlowableObjectNotFoundException("Cannot find case instance with id " + caseInstanceId, CaseInstanceEntity.class); } IdentityLinkUtil.createCaseInstanceIdentityLink(caseInstance, userId, groupId, type); return null; }
public static void handleTaskIdentityLinkDeletions(TaskEntity taskEntity, List<IdentityLinkEntity> identityLinks, boolean cascaseHistory) { for (IdentityLinkEntity identityLinkEntity : identityLinks) { CountingTaskEntity countingTaskEntity = (CountingTaskEntity) taskEntity; if (countingTaskEntity.isCountEnabled()) { countingTaskEntity.setIdentityLinkCount(countingTaskEntity.getIdentityLinkCount() - 1); } if (cascaseHistory) { CommandContextUtil.getCmmnHistoryManager().recordIdentityLinkDeleted(identityLinkEntity); } logTaskIdentityLinkEvent(HistoricTaskLogEntryType.USER_TASK_IDENTITY_LINK_REMOVED.name(), taskEntity, identityLinkEntity); } taskEntity.getIdentityLinks().removeAll(identityLinks); }
@Override protected Void execute(CommandContext commandContext, TaskEntity task) { if (IdentityLinkType.ASSIGNEE.equals(type)) { TaskHelper.changeTaskAssignee(task, null); } else if (IdentityLinkType.OWNER.equals(type)) { TaskHelper.changeTaskOwner(task, null); } else { IdentityLinkUtil.deleteTaskIdentityLinks(task, userId, groupId, type); } return null; }
@Override public Void execute(CommandContext commandContext) { CaseInstance caseInstance = CommandContextUtil.getCaseInstanceEntityManager(commandContext).findById(caseInstanceId); if (caseInstance == null) { throw new FlowableObjectNotFoundException("Cannot find case instance with id " + caseInstanceId, CaseInstanceEntity.class); } IdentityLinkUtil.deleteCaseInstanceIdentityLinks(caseInstance, userId, groupId, type); return null; }
@Override public void addUserIdentityLinkToParent(Task task, String userId) { if (userId != null && ScopeTypes.CMMN.equals(task.getScopeType()) && StringUtils.isNotEmpty(task.getScopeId())) { CaseInstanceEntity caseInstanceEntity = CommandContextUtil.getCaseInstanceEntityManager().findById(task.getScopeId()); if (caseInstanceEntity != null) { List<IdentityLinkEntity> identityLinks = CommandContextUtil.getIdentityLinkService() .findIdentityLinksByScopeIdAndType(caseInstanceEntity.getId(), ScopeTypes.CMMN); for (IdentityLinkEntity identityLink : identityLinks) { if (identityLink.isUser() && identityLink.getUserId().equals(userId) && parentIdentityLinkType.equals(identityLink.getType())) { return; } } IdentityLinkUtil.createCaseInstanceIdentityLink(caseInstanceEntity, userId, null, parentIdentityLinkType); } } }
public static void handleTaskIdentityLinkAddition(TaskEntity taskEntity, IdentityLinkEntity identityLinkEntity) { CommandContextUtil.getCmmnHistoryManager().recordIdentityLinkCreated(identityLinkEntity); CountingTaskEntity countingTaskEntity = (CountingTaskEntity) taskEntity; if (countingTaskEntity.isCountEnabled()) { countingTaskEntity.setIdentityLinkCount(countingTaskEntity.getIdentityLinkCount() + 1); } logTaskIdentityLinkEvent(HistoricTaskLogEntryType.USER_TASK_IDENTITY_LINK_ADDED.name(), taskEntity, identityLinkEntity); taskEntity.getIdentityLinks().add(identityLinkEntity); CommandContextUtil.getInternalTaskAssignmentManager().addUserIdentityLinkToParent(taskEntity, identityLinkEntity.getUserId()); }
@Override public void addCandidateUser(Task task, IdentityLink identityLink) { IdentityLinkUtil.handleTaskIdentityLinkAddition((TaskEntity) task, (IdentityLinkEntity) identityLink); }
@Override public void deleteGroupIdentityLink(Task task, IdentityLink identityLink) { List<IdentityLinkEntity> identityLinks = new ArrayList<>(); identityLinks.add((IdentityLinkEntity) identityLink); IdentityLinkUtil.handleTaskIdentityLinkDeletions((TaskEntity) task, identityLinks, true); }
protected CaseInstanceEntity createCaseInstanceEntityFromDefinition(CommandContext commandContext, CaseDefinition caseDefinition) { CaseInstanceEntityManager caseInstanceEntityManager = CommandContextUtil.getCaseInstanceEntityManager(commandContext); CaseInstanceEntity caseInstanceEntity = caseInstanceEntityManager.create(); caseInstanceEntity.setCaseDefinitionId(caseDefinition.getId()); caseInstanceEntity.setStartTime(CommandContextUtil.getCmmnEngineConfiguration(commandContext).getClock().getCurrentTime()); caseInstanceEntity.setState(CaseInstanceState.ACTIVE); caseInstanceEntity.setTenantId(caseDefinition.getTenantId()); String authenticatedUserId = Authentication.getAuthenticatedUserId(); caseInstanceEntity.setStartUserId(authenticatedUserId); caseInstanceEntityManager.insert(caseInstanceEntity); if (authenticatedUserId != null) { IdentityLinkUtil.createCaseInstanceIdentityLink(caseInstanceEntity, authenticatedUserId, null, IdentityLinkType.STARTER); } caseInstanceEntity.setSatisfiedSentryPartInstances(new ArrayList<>(1)); CmmnDeploymentManager deploymentManager = CommandContextUtil.getCmmnEngineConfiguration(commandContext).getDeploymentManager(); CmmnModel cmmnModel = deploymentManager.resolveCaseDefinition(caseDefinition).getCmmnModel(); Case caseModel = cmmnModel.getCaseById(caseDefinition.getKey()); if (caseModel.getInitiatorVariableName() != null) { caseInstanceEntity.setVariable(caseModel.getInitiatorVariableName(), Authentication.getAuthenticatedUserId()); } return caseInstanceEntity; }
@Override public void addCandidateUsers(Task task, List<IdentityLink> candidateUsers) { List<IdentityLinkEntity> identityLinks = new ArrayList<>(); for (IdentityLink identityLink : candidateUsers) { identityLinks.add((IdentityLinkEntity) identityLink); } IdentityLinkUtil.handleTaskIdentityLinkAdditions((TaskEntity) task, identityLinks); }
public static void handleTaskIdentityLinkAdditions(TaskEntity taskEntity, List<IdentityLinkEntity> identityLinkEntities) { for (IdentityLinkEntity identityLinkEntity : identityLinkEntities) { handleTaskIdentityLinkAddition(taskEntity, identityLinkEntity); } }
public static void deleteTaskIdentityLinks(TaskEntity taskEntity, String userId, String groupId, String type) { List<IdentityLinkEntity> removedIdentityLinkEntities = CommandContextUtil.getIdentityLinkService().deleteTaskIdentityLink( taskEntity.getId(), taskEntity.getIdentityLinks(), userId, groupId, type); handleTaskIdentityLinkDeletions(taskEntity, removedIdentityLinkEntities, true); }
@Override public void addCandidateGroup(Task task, IdentityLink identityLink) { IdentityLinkUtil.handleTaskIdentityLinkAddition((TaskEntity) task, (IdentityLinkEntity) identityLink); }
@Override public void addGroupIdentityLink(Task task, IdentityLink identityLink) { IdentityLinkUtil.handleTaskIdentityLinkAddition((TaskEntity) task, (IdentityLinkEntity) identityLink); }
IdentityLinkUtil.handleTaskIdentityLinkAddition(task, identityLinkEntity); IdentityLinkUtil.handleTaskIdentityLinkAddition(task, identityLinkEntity);