From 4fb0dbcb40e0c61d5a535052f74ec27e999a9a34 Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 15 Mar 2017 09:10:33 +0000 Subject: [PATCH] CCM NG/ccm-cms: Removing roles from task git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4630 8810af33-2d31-482b-a856-94f89814c4df --- .../cms/ui/workflow/WorkflowAdminPaneController.java | 2 +- .../org/libreccm/workflow/AssignableTaskManager.java | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowAdminPaneController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowAdminPaneController.java index 3c3d0d524..4aca1a35c 100644 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowAdminPaneController.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/workflow/WorkflowAdminPaneController.java @@ -376,7 +376,7 @@ public class WorkflowAdminPaneController { final Role role = roleRepo .findById(Long.parseLong(roleId)) .orElseThrow(() -> new IllegalArgumentException(String.format( - "No Role with ID %d in the database. Where did that ID come from?", + "No Role with ID %s in the database. Where did that ID come from?", roleId))); final CmsTask theTask = (CmsTask) taskRepo diff --git a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java index c14c12dfb..f98579db4 100644 --- a/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java +++ b/ccm-core/src/main/java/org/libreccm/workflow/AssignableTaskManager.java @@ -111,12 +111,14 @@ public class AssignableTaskManager { "Can't retract a task from role null."); } - final List result = task.getAssignments().stream() - .filter(assigned -> role.equals(assigned.getRole())) - .collect(Collectors.toList()); + final Optional result = task + .getAssignments() + .stream() + .filter(assigned -> role.getRoleId() == assigned.getRole().getRoleId()) + .findAny(); - if (!result.isEmpty()) { - final TaskAssignment assignment = result.get(0); + if (result.isPresent()) { + final TaskAssignment assignment = result.get(); task.removeAssignment(assignment); role.removeAssignedTask(assignment); entityManager.remove(assignment);