103818 Extend ItemServiceTest#testMoveItemToCollectionWithMoreRestrictiveReadPolicy

This commit is contained in:
Koen Pauwels
2023-08-04 17:00:35 +02:00
parent d4eb327ce5
commit 88749f6c61
2 changed files with 41 additions and 5 deletions

View File

@@ -963,13 +963,18 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
}
// TODO: should we also throw an exception if no DEFAULT_ITEM_READ?
boolean removeCurrentReadRPBitstream =
replaceReadRPWithCollectionRP && defaultCollectionBitstreamPolicies.size() > 0;
boolean removeCurrentReadRPBundle =
replaceReadRPWithCollectionRP && defaultCollectionBundlePolicies.size() > 0;
// remove all policies from bundles, add new ones
// Remove bundles
List<Bundle> bunds = item.getBundles();
for (Bundle mybundle : bunds) {
// If collection has default READ policies, remove the bitstream's READ policies.
if (replaceReadRPWithCollectionRP && defaultCollectionBitstreamPolicies.size() > 0) {
authorizeService.removePoliciesActionFilter(context, item, Constants.READ);
// If collection has default READ policies, remove the bundle's READ policies.
if (removeCurrentReadRPBundle) {
authorizeService.removePoliciesActionFilter(context, mybundle, Constants.READ);
}
// if come from InstallItem: remove all submission/workflow policies
@@ -979,6 +984,11 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
addDefaultPoliciesNotInPlace(context, mybundle, defaultCollectionBundlePolicies);
for (Bitstream bitstream : mybundle.getBitstreams()) {
// If collection has default READ policies, remove the bundle's READ policies.
if (removeCurrentReadRPBitstream) {
authorizeService.removePoliciesActionFilter(context, bitstream, Constants.READ);
}
// if come from InstallItem: remove all submission/workflow policies
removeAllPoliciesAndAddDefault(context, bitstream, defaultItemPolicies,
defaultCollectionBitstreamPolicies);