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
|
// 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
|
// submitter item policies created during deposit and replace them with
|
||||||
// the default policies from the collection.
|
// the default policies from the collection.
|
||||||
itemService.inheritCollectionDefaultPolicies(c, item, collection);
|
itemService.inheritCollectionDefaultPolicies(c, item, collection, false);
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
@@ -920,13 +920,22 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
|
|||||||
@Override
|
@Override
|
||||||
public void inheritCollectionDefaultPolicies(Context context, Item item, Collection collection)
|
public void inheritCollectionDefaultPolicies(Context context, Item item, Collection collection)
|
||||||
throws SQLException, AuthorizeException {
|
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 collection has READ policies, remove the item's READ policies.
|
||||||
|
if (overrideItemReadPolicies) {
|
||||||
List<ResourcePolicy> defaultCollectionPolicies = authorizeService
|
List<ResourcePolicy> defaultCollectionPolicies = authorizeService
|
||||||
.getPoliciesActionFilter(context, collection, Constants.DEFAULT_ITEM_READ);
|
.getPoliciesActionFilter(context, collection, Constants.DEFAULT_ITEM_READ);
|
||||||
if (!defaultCollectionPolicies.isEmpty()) {
|
if (!defaultCollectionPolicies.isEmpty()) {
|
||||||
authorizeService.removePoliciesActionFilter(context, item, Constants.READ);
|
authorizeService.removePoliciesActionFilter(context, item, Constants.READ);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
adjustItemPolicies(context, item, collection);
|
adjustItemPolicies(context, item, collection);
|
||||||
adjustBundleBitstreamPolicies(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;
|
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 DEFAULT_ITEM_READ and DEFAULT_BITSTREAM_READ policies belonging to
|
||||||
* the collection.
|
* the collection.
|
||||||
*
|
*
|
||||||
@@ -488,6 +488,26 @@ public interface ItemService
|
|||||||
public void inheritCollectionDefaultPolicies(Context context, Item item, Collection collection)
|
public void inheritCollectionDefaultPolicies(Context context, Item item, Collection collection)
|
||||||
throws java.sql.SQLException, AuthorizeException;
|
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
|
* Adjust the Bundle and Bitstream policies to reflect what have been defined
|
||||||
* during the submission/workflow. The temporary SUBMISSION and WORKFLOW
|
* during the submission/workflow. The temporary SUBMISSION and WORKFLOW
|
||||||
|
Reference in New Issue
Block a user