mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-16 14:33:09 +00:00
103818 Add boolean parameter to ItemServiceImpl#inheritCollectionDefaultPolicies to decide whether to override item read policies
This commit is contained in:
@@ -93,7 +93,7 @@ public class InstallItemServiceImpl implements InstallItemService {
|
||||
// As this is a BRAND NEW item, as a final step we need to remove the
|
||||
// submitter item policies created during deposit and replace them with
|
||||
// the default policies from the collection.
|
||||
itemService.inheritCollectionDefaultPolicies(c, item, collection);
|
||||
itemService.inheritCollectionDefaultPolicies(c, item, collection, false);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
@@ -920,13 +920,22 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
|
||||
@Override
|
||||
public void inheritCollectionDefaultPolicies(Context context, Item item, Collection collection)
|
||||
throws SQLException, AuthorizeException {
|
||||
inheritCollectionDefaultPolicies(context, item, collection, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inheritCollectionDefaultPolicies(Context context, Item item, Collection collection,
|
||||
boolean overrideItemReadPolicies)
|
||||
throws SQLException, AuthorizeException {
|
||||
|
||||
// If collection has READ policies, remove the item's READ policies.
|
||||
if (overrideItemReadPolicies) {
|
||||
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);
|
||||
|
@@ -473,7 +473,7 @@ public interface ItemService
|
||||
public void removeGroupPolicies(Context context, Item item, Group group) throws SQLException, AuthorizeException;
|
||||
|
||||
/**
|
||||
* remove all policies on an item and its contents, and replace them with
|
||||
* Remove all policies on an item and its contents, and replace them with
|
||||
* the DEFAULT_ITEM_READ and DEFAULT_BITSTREAM_READ policies belonging to
|
||||
* the collection.
|
||||
*
|
||||
@@ -488,6 +488,26 @@ public interface ItemService
|
||||
public void inheritCollectionDefaultPolicies(Context context, Item item, Collection collection)
|
||||
throws java.sql.SQLException, AuthorizeException;
|
||||
|
||||
/**
|
||||
* Remove all submission and workflow policies on an item and its contents, and add
|
||||
* default collection policies which are not yet already in place.
|
||||
* If overrideItemReadPolicies is true, then all read policies on the item are replaced (but only if the
|
||||
* collection has a default read policy).
|
||||
*
|
||||
* @param context DSpace context object
|
||||
* @param item item to reset policies on
|
||||
* @param collection Collection
|
||||
* @param overrideItemReadPolicies if true, all read policies on the item are replaced (but only if the
|
||||
* collection has a default read policy)
|
||||
* @throws SQLException if database error
|
||||
* if an SQL error or if no default policies found. It's a bit
|
||||
* draconian, but default policies must be enforced.
|
||||
* @throws AuthorizeException if authorization error
|
||||
*/
|
||||
public void inheritCollectionDefaultPolicies(Context context, Item item, Collection collection,
|
||||
boolean overrideItemReadPolicies)
|
||||
throws java.sql.SQLException, AuthorizeException;
|
||||
|
||||
/**
|
||||
* Adjust the Bundle and Bitstream policies to reflect what have been defined
|
||||
* during the submission/workflow. The temporary SUBMISSION and WORKFLOW
|
||||
|
Reference in New Issue
Block a user