Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,17 @@ public interface TaskRepository extends MongoRepository<Task, String>, QuerydslP

List<Task> findAllByTransitionIdIn(Collection<String> ids);

Page<Task> findByUserId(Pageable pageable, String userId);
Page<Task> findByAssignee_Id(Pageable pageable, String userId);

List<Task> findByUserIdAndFinishDateNotNull(Long userId);
List<Task> findByAssignee_IdAndFinishDateNotNull(String userId);

Task findByTransitionIdAndCaseId(String transitionId, String caseId);

List<Task> findAllByTransitionIdInAndCaseId(Collection<String> transitionIds, String caseId);

List<Task> findAllBy_idIn(Iterable<ProcessResourceId> id);

void deleteAllByCaseIdAndUserIdIsNull(String caseId);
void deleteAllByCaseIdAndAssignee_IdIsNull(String caseId);

void deleteAllByCaseIdAndFinishDateIsNotNull(String caseId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ private void buildUserQuery(TaskSearchRequest request, BooleanBuilder query) {
}

public Predicate userQuery(String userId) {
return QTask.task.userId.eq(userId);
return QTask.task.assignee.id.eq(userId);
}

private void buildProcessQuery(TaskSearchRequest request, BooleanBuilder query) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.google.common.collect.Ordering;
import com.netgrif.application.engine.objects.auth.domain.AbstractUser;
import com.netgrif.application.engine.objects.auth.domain.ActorTransformer;
import com.netgrif.application.engine.objects.auth.domain.LoggedUser;
import com.netgrif.application.engine.auth.service.UserService;
import com.netgrif.application.engine.elastic.service.interfaces.IElasticTaskMappingService;
Expand Down Expand Up @@ -166,8 +167,7 @@ protected Case assignTaskToUser(AbstractUser user, Task task, Case useCase, Tran

startExecution(transition, useCase);
// TODO: impersonation
task.setUserId(user.getStringId());
task.setUserRealmId(user.getRealmId());
task.setAssignee(ActorTransformer.toActorRef(user));
task.setStartDate(LocalDateTime.now());
// TODO: impersonation
task.setUser(user);
Expand Down Expand Up @@ -398,8 +398,7 @@ private Case returnTokens(Task task, Case useCase) {
});
workflowService.updateMarking(useCase);

task.setUserId(null);
task.setUserRealmId(null);
task.setAssignee(null);
task.setStartDate(null);

useCase = workflowService.save(useCase);
Expand Down Expand Up @@ -452,8 +451,7 @@ public DelegateTaskEventOutcome delegateTask(DelegateTaskParams delegateTaskPara

protected Case delegate(AbstractUser delegated, Task task, Case useCase, Transition transition) throws TransitionNotExecutableException {
if (task.getUserId() != null) {
task.setUserId(delegated.getStringId());
task.setUserRealmId(delegated.getRealmId());
task.setAssignee(ActorTransformer.toActorRef(delegated));
task.setUser(delegated);
save(task);
return useCase;
Expand Down Expand Up @@ -572,8 +570,7 @@ protected Case finishExecution(Transition transition, Task task, Case useCase) t

task.setFinishDate(LocalDateTime.now());
task.setFinishedBy(task.getUserId());
task.setUserId(null);
task.setUserRealmId(null);
task.setAssignee(null);

save(task);
return workflowService.save(useCase);
Expand Down Expand Up @@ -762,7 +759,7 @@ public List<Task> findAllById(List<String> ids) {
public Page<Task> findByUser(Pageable pageable, AbstractUser user) {
// TODO: impersonation
// return loadUsers(taskRepository.findByUserId(pageable, user.getSelfOrImpersonated().getStringId()));
return loadUsers(taskRepository.findByUserId(pageable, user.getStringId()));
return loadUsers(taskRepository.findByAssignee_Id(pageable, user.getStringId()));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.netgrif.application.engine.workflow.web.responsebodies;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.netgrif.application.engine.objects.auth.domain.ActorRef;
import com.netgrif.application.engine.objects.elastic.domain.ElasticTask;
import com.netgrif.application.engine.objects.petrinet.domain.dataset.Field;
import com.netgrif.application.engine.objects.petrinet.domain.events.EventType;
Expand Down Expand Up @@ -36,9 +37,7 @@ public class Task {

private Integer priority;

private String userId;

private String userRealmId;
private ActorRef assignee;

private Map<String, Map<String, Boolean>> roles;

Expand Down Expand Up @@ -85,8 +84,7 @@ public Task(com.netgrif.application.engine.objects.workflow.domain.Task task, Lo
this.caseColor = task.getCaseColor();
this.caseTitle = task.getCaseTitle();
this.priority = task.getPriority();
this.userId = task.getUser() != null ? task.getUser().getStringId() : null;
this.userRealmId = task.getUser() != null ? task.getUser().getRealmId() : null;
this.assignee = task.getAssignee();
this.roles = task.getRoles();
this.users = task.getUsers();
this.startDate = task.getStartDate();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ class TaskApiTest {
helper.assignTaskToSuper(TASK_BULK_TASK, control.stringId)
helper.finishTaskAsSuper(TASK_BULK_TASK, control.stringId)

assert taskRepository.findAll(QTask.task.userId.eq(userService.system.getStringId())).size() == 2
assert taskRepository.findAll(QTask.task.assignee.id.eq(userService.system.getStringId())).size() == 2
}

public static final String TASK_GETTER_NET_FILE = "ipc_data.xml"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ public abstract class ElasticTask implements Serializable {

private String userRealmId;

private String userFullName;

private String username;

private LocalDateTime startDate;

private String transactionId;
Expand Down Expand Up @@ -93,8 +97,12 @@ public ElasticTask(Task task) {
this.caseTitleSortable = this.caseTitle;
if (task.getPriority() != null)
this.priority = task.getPriority();
this.userId = task.getUserId();
this.userRealmId = task.getUserRealmId();
if (task.getAssignee() != null) {
this.userId = task.getAssignee().getId();
this.userRealmId = task.getAssignee().getRealmId();
this.username = task.getAssignee().getUsername();
this.userFullName = task.getAssignee().getFullName();
}
this.startDate = task.getStartDate();
this.roles = task.getRoles();
this.userRefs = task.getUserRefs();
Expand All @@ -118,6 +126,8 @@ public void update(ElasticTask task) {
this.priority = task.getPriority();
this.userId = task.getUserId();
this.userRealmId = task.getUserRealmId();
this.userFullName = task.getUserFullName();
this.username = task.getUsername();
this.startDate = task.getStartDate();
this.roles = task.getRoles();
this.viewRoles = task.getViewRoles();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.netgrif.application.engine.objects.annotations.Indexable;
import com.netgrif.application.engine.objects.annotations.Indexed;
import com.netgrif.application.engine.objects.auth.domain.AbstractUser;
import com.netgrif.application.engine.objects.auth.domain.ActorRef;
import com.netgrif.application.engine.objects.petrinet.domain.I18nString;
import com.netgrif.application.engine.objects.petrinet.domain.dataset.Field;
import com.netgrif.application.engine.objects.petrinet.domain.events.EventType;
Expand Down Expand Up @@ -69,12 +70,10 @@ public abstract class Task implements Serializable {
@Setter
private Integer priority;

@Getter
@Setter
@Indexed
private String userId;

@Setter
private String userRealmId;
private ActorRef assignee;

@Getter
@Setter
Expand Down Expand Up @@ -281,12 +280,12 @@ public void addEventTitle(EventType type, I18nString title) {

@JsonIgnore
public String getUserId() {
return userId;
return assignee != null ? assignee.getId() : null;
}

@JsonIgnore
public String getUserRealmId() {
return userRealmId;
return assignee != null ? assignee.getRealmId() : null;
}

public String getTranslatedEventTitle(EventType assign, Locale locale) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.netgrif.application.engine.objects.auth.domain.AbstractUser;
import com.netgrif.application.engine.objects.auth.domain.ActorRef;
import com.netgrif.application.engine.objects.petrinet.domain.I18nString;
import com.netgrif.application.engine.objects.petrinet.domain.dataset.Field;
import com.netgrif.application.engine.objects.petrinet.domain.events.EventType;
Expand Down Expand Up @@ -29,8 +30,8 @@ public Task() {
}

@Builder(builderMethodName = "with")
public Task(ProcessResourceId _id, String processId, String caseId, String transitionId, TaskLayout layout, I18nString title, String caseColor, String caseTitle, Integer priority, String userId, String userRealmId, AbstractUser user, List<Trigger> triggers, Map<String, Map<String, Boolean>> roles, Map<String, Map<String, Boolean>> userRefs, Map<String, Map<String, Boolean>> users, List<String> viewRoles, List<String> viewUserRefs, List<String> viewUsers, List<String> negativeViewRoles, List<String> negativeViewUsers, LocalDateTime startDate, LocalDateTime finishDate, String finishedBy, String transactionId, Boolean requiredFilled, LinkedHashSet<String> immediateDataFields, List<Field<?>> immediateData, String icon, AssignPolicy assignPolicy, DataFocusPolicy dataFocusPolicy, FinishPolicy finishPolicy, Map<EventType, I18nString> eventTitles, Map<String, Boolean> assignedUserPolicy, Map<String, Integer> consumedTokens, Map<String, String> tags) {
super(_id, processId, caseId, transitionId, layout, title, caseColor, caseTitle, priority, userId, userRealmId, user, triggers, roles, userRefs, users, viewRoles, viewUserRefs, viewUsers, negativeViewRoles, negativeViewUsers, startDate, finishDate, finishedBy, transactionId, requiredFilled, immediateDataFields, immediateData, icon, assignPolicy, dataFocusPolicy, finishPolicy, eventTitles, assignedUserPolicy, consumedTokens, tags);
public Task(ProcessResourceId _id, String processId, String caseId, String transitionId, TaskLayout layout, I18nString title, String caseColor, String caseTitle, Integer priority, ActorRef assignee, AbstractUser user, List<Trigger> triggers, Map<String, Map<String, Boolean>> roles, Map<String, Map<String, Boolean>> userRefs, Map<String, Map<String, Boolean>> users, List<String> viewRoles, List<String> viewUserRefs, List<String> viewUsers, List<String> negativeViewRoles, List<String> negativeViewUsers, LocalDateTime startDate, LocalDateTime finishDate, String finishedBy, String transactionId, Boolean requiredFilled, LinkedHashSet<String> immediateDataFields, List<Field<?>> immediateData, String icon, AssignPolicy assignPolicy, DataFocusPolicy dataFocusPolicy, FinishPolicy finishPolicy, Map<EventType, I18nString> eventTitles, Map<String, Boolean> assignedUserPolicy, Map<String, Integer> consumedTokens, Map<String, String> tags) {
super(_id, processId, caseId, transitionId, layout, title, caseColor, caseTitle, priority, assignee, user, triggers, roles, userRefs, users, viewRoles, viewUserRefs, viewUsers, negativeViewRoles, negativeViewUsers, startDate, finishDate, finishedBy, transactionId, requiredFilled, immediateDataFields, immediateData, icon, assignPolicy, dataFocusPolicy, finishPolicy, eventTitles, assignedUserPolicy, consumedTokens, tags);
}

@Id
Expand Down
Loading