From 8bfb7fae95ef4e4bf7609b6f8f552579f2f9fd2c Mon Sep 17 00:00:00 2001 From: Elena Mokeeva Date: Thu, 12 Jan 2023 14:37:13 +0100 Subject: [PATCH] TSK-1977: fix setting ownerLongName while claiming --- .../task/complete/CompleteTaskAccTest.java | 14 ++++++++++ .../task/internal/TaskServiceImpl.java | 26 ++++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/lib/taskana-core-test/src/test/java/acceptance/task/complete/CompleteTaskAccTest.java b/lib/taskana-core-test/src/test/java/acceptance/task/complete/CompleteTaskAccTest.java index 000df95a4..8b8e864e1 100644 --- a/lib/taskana-core-test/src/test/java/acceptance/task/complete/CompleteTaskAccTest.java +++ b/lib/taskana-core-test/src/test/java/acceptance/task/complete/CompleteTaskAccTest.java @@ -19,6 +19,7 @@ import org.junit.jupiter.api.TestTemplate; import pro.taskana.classification.api.ClassificationService; import pro.taskana.classification.api.models.ClassificationSummary; import pro.taskana.common.api.BulkOperationResults; +import pro.taskana.common.api.TaskanaEngine; import pro.taskana.common.api.exceptions.InvalidArgumentException; import pro.taskana.common.api.exceptions.TaskanaException; import pro.taskana.common.api.security.CurrentUserContext; @@ -35,8 +36,10 @@ import pro.taskana.testapi.DefaultTestEntities; import pro.taskana.testapi.TaskanaInject; import pro.taskana.testapi.TaskanaIntegrationTest; import pro.taskana.testapi.builder.TaskBuilder; +import pro.taskana.testapi.builder.UserBuilder; import pro.taskana.testapi.builder.WorkbasketAccessItemBuilder; import pro.taskana.testapi.security.WithAccessId; +import pro.taskana.user.api.UserService; import pro.taskana.workbasket.api.WorkbasketPermission; import pro.taskana.workbasket.api.WorkbasketService; import pro.taskana.workbasket.api.exceptions.MismatchedWorkbasketPermissionException; @@ -48,6 +51,10 @@ class CompleteTaskAccTest { @TaskanaInject TaskService taskService; @TaskanaInject CurrentUserContext currentUserContext; + @TaskanaInject UserService userService; + + @TaskanaInject TaskanaEngine taskanaEngine; + ClassificationSummary defaultClassificationSummary; WorkbasketSummary defaultWorkbasketSummary; ObjectReference defaultObjectReference; @@ -68,6 +75,11 @@ class CompleteTaskAccTest { .buildAndStore(workbasketService); defaultObjectReference = DefaultTestEntities.defaultTestObjectReference().build(); + + taskanaEngine.getConfiguration().setAddAdditionalUserInfo(true); + UserBuilder user11 = UserBuilder.newUser().id("user-1-1") + .longName("Mustermann, Max - (user-1-1)").firstName("Max").lastName("Mustermann"); + user11.buildAndStore(userService); } @WithAccessId(user = "user-1-1") @@ -246,6 +258,7 @@ class CompleteTaskAccTest { assertThat(claimedTask).isNotNull(); assertThat(claimedTask.getOwner()).isEqualTo("user-1-1"); + assertThat(claimedTask.getOwnerLongName()).isEqualTo("Mustermann, Max - (user-1-1)"); assertThat(claimedTask.getState()).isEqualTo(TaskState.CLAIMED); assertThat(claimedTask.isRead()).isTrue(); assertThat(claimedTask.getClaimed()) @@ -266,6 +279,7 @@ class CompleteTaskAccTest { assertThat(claimedTask).isNotNull(); assertThat(claimedTask.getOwner()).isEqualTo("user-1-1"); + assertThat(claimedTask.getOwnerLongName()).isEqualTo("Mustermann, Max - (user-1-1)"); assertThat(claimedTask.getState()).isEqualTo(TaskState.CLAIMED); assertThat(claimedTask.isRead()).isTrue(); assertThat(claimedTask.getClaimed()) diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java index c2c0562a5..10c3dae77 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java +++ b/lib/taskana-core/src/main/java/pro/taskana/task/internal/TaskServiceImpl.java @@ -1110,13 +1110,24 @@ public class TaskServiceImpl implements TaskService { addErrorToBulkLog(this::checkPreconditionsForCompleteTask, bulkLog)); } else { String userId = taskanaEngine.getEngine().getCurrentUserContext().getUserid(); + String userLongName; + if (taskanaEngine.getEngine().getConfiguration().getAddAdditionalUserInfo()) { + User user = userMapper.findById(userId); + if (user != null) { + userLongName = user.getLongName(); + } else { + userLongName = null; + } + } else { + userLongName = null; + } filteredSummaries = filteredSummaries.filter( addErrorToBulkLog( summary -> { if (taskIsNotClaimed(summary)) { checkPreconditionsForClaimTask(summary, true); - claimActionsOnTask(summary, userId, now); + claimActionsOnTask(summary, userId, userLongName, now); } }, bulkLog)); @@ -1208,6 +1219,13 @@ public class TaskServiceImpl implements TaskService { throws TaskNotFoundException, InvalidStateException, InvalidOwnerException, NotAuthorizedException { String userId = taskanaEngine.getEngine().getCurrentUserContext().getUserid(); + String userLongName = null; + if (taskanaEngine.getEngine().getConfiguration().getAddAdditionalUserInfo()) { + User user = userMapper.findById(userId); + if (user != null) { + userLongName = user.getLongName(); + } + } TaskImpl task; try { taskanaEngine.openConnection(); @@ -1217,7 +1235,7 @@ public class TaskServiceImpl implements TaskService { Instant now = Instant.now(); checkPreconditionsForClaimTask(task, forceClaim); - claimActionsOnTask(task, userId, now); + claimActionsOnTask(task, userId, userLongName, now); taskMapper.update(task); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Task '{}' claimed by user '{}'.", taskId, userId); @@ -1339,8 +1357,10 @@ public class TaskServiceImpl implements TaskService { return task; } - private static void claimActionsOnTask(TaskSummaryImpl task, String userId, Instant now) { + private static void claimActionsOnTask( + TaskSummaryImpl task, String userId, String userLongName, Instant now) { task.setOwner(userId); + task.setOwnerLongName(userLongName); task.setModified(now); task.setClaimed(now); task.setRead(true);