TSK-614 BUG to allow update empty wbAccessItems

- Update to empty workbasket access items was not allowed.
This commit is contained in:
Martin Rojas Miguel Angel 2018-07-04 14:32:40 +02:00 committed by Holger Hagen
parent c68dace0f1
commit 2725d29191
2 changed files with 26 additions and 4 deletions

View File

@ -215,11 +215,13 @@ public class WorkbasketServiceImpl implements WorkbasketService {
}
newItems.add(wbAccessItemImpl);
}
}
// delete all current ones
workbasketAccessMapper.deleteAllAccessItemsForWorkbasketId(workbasketId);
// delete all current ones
workbasketAccessMapper.deleteAllAccessItemsForWorkbasketId(workbasketId);
// add all
// add all
if (!newItems.isEmpty()) {
newItems.stream().forEach(item -> workbasketAccessMapper.insert(item));
}
} finally {
@ -366,7 +368,7 @@ public class WorkbasketServiceImpl implements WorkbasketService {
if ((originalItem.getAccessId() != null && !originalItem.getAccessId().equals(accessItem.getAccessId()))
|| (originalItem.getWorkbasketId() != null
&& !originalItem.getWorkbasketId().equals(accessItem.getWorkbasketId()))) {
&& !originalItem.getWorkbasketId().equals(accessItem.getWorkbasketId()))) {
throw new InvalidArgumentException(
"AccessId and WorkbasketId must not be changed in updateWorkbasketAccessItem calls");
}

View File

@ -205,6 +205,26 @@ public class UpdateWorkbasketAuthorizationsAccTest extends AbstractAccTest {
assertFalse(item1.isPermTransfer());
}
@WithAccessId(
userName = "teamlead_1",
groupNames = {"group_1", "businessadmin"})
@Test
public void testUpdatedAccessItemListToEmptyList() throws InvalidArgumentException, NotAuthorizedException {
WorkbasketService workbasketService = taskanaEngine.getWorkbasketService();
final String wbId = "WBI:100000000000000000000000000000000004";
List<WorkbasketAccessItem> accessItems = workbasketService
.getWorkbasketAccessItems(wbId);
int countBefore = accessItems.size();
assertThat(3, equalTo(countBefore));
workbasketService.setWorkbasketAccessItems(wbId, new ArrayList<>());
List<WorkbasketAccessItem> updatedAccessItems = workbasketService
.getWorkbasketAccessItems(wbId);
int countAfter = updatedAccessItems.size();
assertThat(0, equalTo(countAfter));
}
@WithAccessId(
userName = "teamlead_1",
groupNames = {"group_1", "businessadmin"})