Merge pull request #1221 from atmire/DS-2945

DS-2945 Submitting to a collection without any workflow as normal user ends in an Exception
This commit is contained in:
Kevin Van de Velde
2016-01-29 12:47:48 +01:00

View File

@@ -17,7 +17,6 @@ import org.dspace.authorize.ResourcePolicy;
import org.dspace.authorize.service.AuthorizeService; import org.dspace.authorize.service.AuthorizeService;
import org.dspace.authorize.service.ResourcePolicyService; import org.dspace.authorize.service.ResourcePolicyService;
import org.dspace.content.authority.Choices; import org.dspace.content.authority.Choices;
import org.dspace.content.authority.service.ChoiceAuthorityService;
import org.dspace.content.dao.ItemDAO; import org.dspace.content.dao.ItemDAO;
import org.dspace.content.service.*; import org.dspace.content.service.*;
import org.dspace.core.Constants; import org.dspace.core.Constants;
@@ -747,13 +746,14 @@ public class ItemServiceImpl extends DSpaceObjectServiceImpl<Item> implements It
+ " has no default item READ policies"); + " has no default item READ policies");
} }
try {
//ignore the authorizations for now.
context.turnOffAuthorisationSystem();
// if come from InstallItem: remove all submission/workflow policies // if come from InstallItem: remove all submission/workflow policies
authorizeService.removeAllPoliciesByDSOAndType(context, item, ResourcePolicy.TYPE_SUBMISSION); authorizeService.removeAllPoliciesByDSOAndType(context, item, ResourcePolicy.TYPE_SUBMISSION);
authorizeService.removeAllPoliciesByDSOAndType(context, item, ResourcePolicy.TYPE_WORKFLOW); authorizeService.removeAllPoliciesByDSOAndType(context, item, ResourcePolicy.TYPE_WORKFLOW);
try {
//We just removed all policies so only an admin will be able to add additional policies, ignore the authorizations for now.
context.turnOffAuthorisationSystem();
// add default policies only if not already in place // add default policies only if not already in place
List<ResourcePolicy> policiesToAdd = filterPoliciesToAdd(context, defaultCollectionPolicies, item); List<ResourcePolicy> policiesToAdd = filterPoliciesToAdd(context, defaultCollectionPolicies, item);
authorizeService.addPolicies(context, policiesToAdd, item); authorizeService.addPolicies(context, policiesToAdd, item);