diff --git a/dspace-api/src/main/java/org/dspace/correctiontype/ReinstateCorrectionType.java b/dspace-api/src/main/java/org/dspace/correctiontype/ReinstateCorrectionType.java index 0c8b265b6f1b..3ca9d6ffa973 100644 --- a/dspace-api/src/main/java/org/dspace/correctiontype/ReinstateCorrectionType.java +++ b/dspace-api/src/main/java/org/dspace/correctiontype/ReinstateCorrectionType.java @@ -14,10 +14,8 @@ import com.google.gson.Gson; import org.dspace.authorize.AuthorizeException; -import org.dspace.authorize.service.AuthorizeService; import org.dspace.content.Item; import org.dspace.content.QAEvent; -import org.dspace.core.Constants; import org.dspace.core.Context; import org.dspace.qaevent.service.QAEventService; import org.dspace.qaevent.service.dto.CorrectionTypeMessageDTO; @@ -39,14 +37,14 @@ public class ReinstateCorrectionType implements CorrectionType, InitializingBean @Autowired private QAEventService qaEventService; - @Autowired - private AuthorizeService authorizeService; @Override - public boolean isAllowed(Context context, Item targetItem) throws SQLException, AuthorizeException { - authorizeService.authorizeAction(context, targetItem, Constants.READ); + public boolean isAllowed(Context context, Item targetItem) throws SQLException { + if (!targetItem.isWithdrawn()) { + return false; + } long tot = qaEventService.countSourcesByTarget(context, targetItem.getID()); - return tot == 0 && targetItem.isWithdrawn(); + return tot == 0; } @Override diff --git a/dspace-api/src/main/java/org/dspace/correctiontype/WithdrawnCorrectionType.java b/dspace-api/src/main/java/org/dspace/correctiontype/WithdrawnCorrectionType.java index d66e0d4a8c3d..6f84b3709489 100644 --- a/dspace-api/src/main/java/org/dspace/correctiontype/WithdrawnCorrectionType.java +++ b/dspace-api/src/main/java/org/dspace/correctiontype/WithdrawnCorrectionType.java @@ -43,10 +43,17 @@ public class WithdrawnCorrectionType implements CorrectionType, InitializingBean private AuthorizeService authorizeService; @Override - public boolean isAllowed(Context context, Item targetItem) throws AuthorizeException, SQLException { - authorizeService.authorizeAction(context, targetItem, READ); + public boolean isAllowed(Context context, Item targetItem) throws SQLException { + if (targetItem.isWithdrawn() || !targetItem.isArchived()) { + return false; + } + try { + authorizeService.authorizeAction(context, targetItem, READ); + } catch (AuthorizeException e) { + return false; + } long tot = qaEventService.countSourcesByTarget(context, targetItem.getID()); - return tot == 0 && targetItem.isArchived() && !targetItem.isWithdrawn(); + return tot == 0; } @Override