103818 ItemServiceImpl#inheritCollectionDefaultPolicies now clears item READ policies if new parent collection has a default READ policy

This commit is contained in:
Koen Pauwels
2023-08-04 11:39:35 +02:00
parent 5a43e6bcf1
commit 54280e8fe2
2 changed files with 62 additions and 0 deletions

View File

@@ -920,6 +920,14 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
@Override
public void inheritCollectionDefaultPolicies(Context context, Item item, Collection collection)
throws SQLException, AuthorizeException {
// If collection has READ policies, remove the item's READ policies.
List<ResourcePolicy> defaultCollectionPolicies = authorizeService
.getPoliciesActionFilter(context, collection, Constants.DEFAULT_ITEM_READ);
if (!defaultCollectionPolicies.isEmpty()) {
authorizeService.removePoliciesActionFilter(context, item, Constants.READ);
}
adjustItemPolicies(context, item, collection);
adjustBundleBitstreamPolicies(context, item, collection);