mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 10:04:21 +00:00
Merge pull request #1476 from cwilper/DS-1929-safe-bitstream-embargo
DS-1929 Permit bitstream embargo edit only via Edit Policy
This commit is contained in:
@@ -709,8 +709,6 @@ public class FlowItemUtils
|
|||||||
// Save our changes
|
// Save our changes
|
||||||
bitstreamService.update(context, bitstream);
|
bitstreamService.update(context, bitstream);
|
||||||
|
|
||||||
processAccessFields(context, request, ((Item)bitstreamService.getParentObject(context,bitstream)).getOwningCollection(), bitstream);
|
|
||||||
|
|
||||||
result.setContinue(true);
|
result.setContinue(true);
|
||||||
result.setOutcome(true);
|
result.setOutcome(true);
|
||||||
result.setMessage(T_bitstream_updated);
|
result.setMessage(T_bitstream_updated);
|
||||||
|
@@ -149,8 +149,7 @@ public class EditBitstreamForm extends AbstractDSpaceTransformer
|
|||||||
if(!isAdvancedFormEnabled){
|
if(!isAdvancedFormEnabled){
|
||||||
AccessStepUtil asu = new AccessStepUtil(context);
|
AccessStepUtil asu = new AccessStepUtil(context);
|
||||||
// if the item is embargoed default value will be displayed.
|
// if the item is embargoed default value will be displayed.
|
||||||
asu.addEmbargoDateSimpleForm(bitstream, edit, -1);
|
asu.addEmbargoDateDisplayOnly(bitstream, edit);
|
||||||
asu.addReason(null, edit, -1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
edit.addItem(T_para1);
|
edit.addItem(T_para1);
|
||||||
|
@@ -15,6 +15,7 @@ import org.dspace.authorize.factory.AuthorizeServiceFactory;
|
|||||||
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.*;
|
import org.dspace.content.*;
|
||||||
|
import org.dspace.core.Constants;
|
||||||
import org.dspace.core.Context;
|
import org.dspace.core.Context;
|
||||||
import org.dspace.app.xmlui.wing.WingException;
|
import org.dspace.app.xmlui.wing.WingException;
|
||||||
import org.dspace.app.xmlui.wing.element.*;
|
import org.dspace.app.xmlui.wing.element.*;
|
||||||
@@ -66,6 +67,8 @@ public class AccessStepUtil extends AbstractDSpaceTransformer {
|
|||||||
|
|
||||||
private static final Message T_label_date_help =
|
private static final Message T_label_date_help =
|
||||||
message("xmlui.administrative.authorization.AccessStep.label_date_help");
|
message("xmlui.administrative.authorization.AccessStep.label_date_help");
|
||||||
|
private static final Message T_label_date_displayonly_help =
|
||||||
|
message("xmlui.administrative.authorization.AccessStep.label_date_displayonly_help");
|
||||||
|
|
||||||
public static final int RADIO_OPEN_ACCESS_ITEM_VISIBLE=0;
|
public static final int RADIO_OPEN_ACCESS_ITEM_VISIBLE=0;
|
||||||
public static final int RADIO_OPEN_ACCESS_ITEM_EMBARGOED=1;
|
public static final int RADIO_OPEN_ACCESS_ITEM_EMBARGOED=1;
|
||||||
@@ -188,31 +191,25 @@ public class AccessStepUtil extends AbstractDSpaceTransformer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addEmbargoDateSimpleForm(DSpaceObject dso, List form, int errorFlag) throws SQLException, WingException {
|
public void addEmbargoDateDisplayOnly(final DSpaceObject dso, final List list) throws SQLException, WingException {
|
||||||
|
final Text text = list.addItem().addText("embargo");
|
||||||
|
text.setLabel(T_item_embargoed);
|
||||||
|
text.setHelp(T_label_date_displayonly_help);
|
||||||
|
populateEmbargoDetail(dso, text);
|
||||||
|
text.setDisabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
String date=null;
|
private void populateEmbargoDetail(final DSpaceObject dso, final Text text) throws SQLException, WingException {
|
||||||
|
for (final ResourcePolicy readPolicy : authorizeService.getPoliciesActionFilter(context, dso, Constants.READ)) {
|
||||||
if(dso!=null){
|
if (Group.ANONYMOUS.equals(readPolicy.getGroup().getName()) && readPolicy.getStartDate() != null) {
|
||||||
java.util.List<ResourcePolicy> policies = authorizeService.findPoliciesByDSOAndType(context, dso, ResourcePolicy.TYPE_CUSTOM);
|
final String dateString = DateFormatUtils.format(readPolicy.getStartDate(), "yyyy-MM-dd");
|
||||||
if(policies.size() > 0){
|
text.setValue(dateString);
|
||||||
ResourcePolicy rp = policies.get(0);
|
globalReason = readPolicy.getRpDescription();
|
||||||
if(rp.getStartDate() != null)
|
|
||||||
{
|
|
||||||
date = DateFormatUtils.format(rp.getStartDate(), "yyyy-MM-dd");
|
|
||||||
}
|
|
||||||
globalReason = rp.getRpDescription();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// CheckBox privateCheckbox = form.addItem().addCheckBox("emabrgo_option");
|
}
|
||||||
// privateCheckbox.setLabel(T_item_embargoed);
|
|
||||||
// if(date!=null){
|
|
||||||
// privateCheckbox.addOption(true, CB_EMBARGOED, "");
|
|
||||||
// }
|
|
||||||
// else{
|
|
||||||
// privateCheckbox.addOption(false, CB_EMBARGOED, "");
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Date
|
public void addEmbargoDateSimpleForm(DSpaceObject dso, List form, int errorFlag) throws SQLException, WingException {
|
||||||
Text startDate = form.addItem().addText("embargo_until_date");
|
Text startDate = form.addItem().addText("embargo_until_date");
|
||||||
startDate.setLabel(T_item_embargoed);
|
startDate.setLabel(T_item_embargoed);
|
||||||
if (errorFlag == org.dspace.submit.step.AccessStep.STATUS_ERROR_FORMAT_DATE){
|
if (errorFlag == org.dspace.submit.step.AccessStep.STATUS_ERROR_FORMAT_DATE){
|
||||||
@@ -222,8 +219,8 @@ public class AccessStepUtil extends AbstractDSpaceTransformer {
|
|||||||
startDate.addError(T_error_missing_date);
|
startDate.addError(T_error_missing_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(date!=null){
|
if (dso != null) {
|
||||||
startDate.setValue(date);
|
populateEmbargoDetail(dso, startDate);
|
||||||
}
|
}
|
||||||
startDate.setHelp(T_label_date_help);
|
startDate.setHelp(T_label_date_help);
|
||||||
}
|
}
|
||||||
|
@@ -785,7 +785,8 @@
|
|||||||
<message key="xmlui.Submission.submit.AccessStep.column4">End Date</message>
|
<message key="xmlui.Submission.submit.AccessStep.column4">End Date</message>
|
||||||
<message key="xmlui.Submission.submit.AccessStep.table_edit_button">Edit</message>
|
<message key="xmlui.Submission.submit.AccessStep.table_edit_button">Edit</message>
|
||||||
<message key="xmlui.Submission.submit.AccessStep.table_delete_button">Remove</message>
|
<message key="xmlui.Submission.submit.AccessStep.table_delete_button">Remove</message>
|
||||||
<message key="xmlui.administrative.authorization.AccessStep.label_date_help">The first day from which access is allowed. Accepted format: yyyy, yyyy-mm, yyyy-mm-dd</message>
|
<message key="xmlui.administrative.authorization.AccessStep.label_date_help">The first day from which access is allowed. Accepted format: yyyy, yyyy-mm, yyyy-mm-dd</message>
|
||||||
|
<message key="xmlui.administrative.authorization.AccessStep.label_date_displayonly_help">The first day from which access is allowed. <b>This date cannot be modified on this form.</b> To set an embargo date for a bitstream, go to the <i>Item Status</i> tab, click <i>Authorizations...</i>, create or edit the bitstream's <i>READ</i> policy, and set the <i>Start Date</i> as desired.</message>
|
||||||
<message key="xmlui.Submission.submit.AccessStep.review_policy_line">Name: {0}; action: {1}, group: {2}, start date: {3}, end date: {4}</message>
|
<message key="xmlui.Submission.submit.AccessStep.review_policy_line">Name: {0}; action: {1}, group: {2}, start date: {3}, end date: {4}</message>
|
||||||
<message key="xmlui.Submission.submit.AccessStep.review_public_item">The item will be searchable</message>
|
<message key="xmlui.Submission.submit.AccessStep.review_public_item">The item will be searchable</message>
|
||||||
<message key="xmlui.Submission.submit.AccessStep.review_private_item">The item will not be searchable</message>
|
<message key="xmlui.Submission.submit.AccessStep.review_private_item">The item will not be searchable</message>
|
||||||
|
Reference in New Issue
Block a user