mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-15 05:53:08 +00:00
bulk access controll
This commit is contained in:

committed by
eskander

parent
6b40f2eea6
commit
4e64afbe3b
@@ -940,14 +940,39 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
|
||||
|
||||
for (Bitstream bitstream : mybundle.getBitstreams()) {
|
||||
// if come from InstallItem: remove all submission/workflow policies
|
||||
authorizeService.removeAllPoliciesByDSOAndType(context, bitstream, ResourcePolicy.TYPE_SUBMISSION);
|
||||
authorizeService.removeAllPoliciesByDSOAndType(context, bitstream, ResourcePolicy.TYPE_WORKFLOW);
|
||||
addCustomPoliciesNotInPlace(context, bitstream, defaultItemPolicies);
|
||||
addDefaultPoliciesNotInPlace(context, bitstream, defaultCollectionPolicies);
|
||||
removeAllPoliciesAndAddDefault(context, bitstream, defaultItemPolicies, defaultCollectionPolicies);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void adjustBitstreamPolicies(Context context, Item item, Collection collection , Bitstream bitstream)
|
||||
throws SQLException, AuthorizeException {
|
||||
List<ResourcePolicy> defaultCollectionPolicies = authorizeService
|
||||
.getPoliciesActionFilter(context, collection, Constants.DEFAULT_BITSTREAM_READ);
|
||||
|
||||
List<ResourcePolicy> defaultItemPolicies = authorizeService.findPoliciesByDSOAndType(context, item,
|
||||
ResourcePolicy.TYPE_CUSTOM);
|
||||
if (defaultCollectionPolicies.size() < 1) {
|
||||
throw new SQLException("Collection " + collection.getID()
|
||||
+ " (" + collection.getHandle() + ")"
|
||||
+ " has no default bitstream READ policies");
|
||||
}
|
||||
|
||||
// remove all policies from bitstream, add new ones
|
||||
removeAllPoliciesAndAddDefault(context, bitstream, defaultItemPolicies, defaultCollectionPolicies);
|
||||
}
|
||||
|
||||
private void removeAllPoliciesAndAddDefault(Context context, Bitstream bitstream,
|
||||
List<ResourcePolicy> defaultItemPolicies,
|
||||
List<ResourcePolicy> defaultCollectionPolicies)
|
||||
throws SQLException, AuthorizeException {
|
||||
authorizeService.removeAllPoliciesByDSOAndType(context, bitstream, ResourcePolicy.TYPE_SUBMISSION);
|
||||
authorizeService.removeAllPoliciesByDSOAndType(context, bitstream, ResourcePolicy.TYPE_WORKFLOW);
|
||||
addCustomPoliciesNotInPlace(context, bitstream, defaultItemPolicies);
|
||||
addDefaultPoliciesNotInPlace(context, bitstream, defaultCollectionPolicies);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void adjustItemPolicies(Context context, Item item, Collection collection)
|
||||
throws SQLException, AuthorizeException {
|
||||
|
Reference in New Issue
Block a user