Background

At Leiden University, The Netherlands, we use DSpace among other things for "Dissertations Online" https://openaccess.leidenuniv.nl/handle/1887/492
Sometimes the dissertation is in the repository, but the publisher disallows the distribution of the full text of the dissertation or part of the dissertation. It must be under embargo. Because DSpace 1.3.2 did not support this kind of behaviour, we implemented it.

How it works

Bitstreams all have a resource policy. Most of the time this is a anonymous read policy. If a bitstream has no anonymous read policy then it cannot be read, so effectively it is under embargo.

Now if you could set an end date for that embargo, it would be so much nicer. But this is already possible:

DSpace allows resource policies to have a start date and an end date: so if you set an anonymous read policy with a start date of januari 1 2009, it is effectively under embargo until januari 1 2009.

Now all this change does, is:

allow a submitter to set an embargo date when uploading a new file (optional)

allow an administrator to set the start and end dates of a resource policy for bitstreams

display the embargo date in a nice way when displaying an item with bitstream information, and disabling the link to that bitstream if it is under embargo (an administrator can always link to the bitstream)

See it at

Note: our DSpace implementation has lots of other modifications, including a very different look and feel. This is not included in this patch.

Below are some screenshots from the submission process and from the administrators pages

Which DSpace version

The modifications I made were made to Dspace 1.3.2. This is also the version of DSpace were this functionality was tested extensively.

This does not mean that this will not work on DSpace 1.4 or higher, it just is not tested yet.

The installation steps below are for DSpace 1.3.2, but will give some pointers for DSpace 1.4, so it should be possible to implement this on DSpace 1.4. If you do this and have any suggestions, please share them!

How to install

Many files need some changes, so keep a backup copy of the changed files in case it goes sour...

Step 5: build / install / restart

batch setting embargoes on a list of handles

With the following perl script you can set or remove the embargo of a list of items in one go:

Missing File: Setembargo.pl

The script is executed from the command line and gets 2 arguments:

the embargo date, or the word none (all embargoes will be lifted), or the word forever (to get a never ending embargo)

the name of a file. The file contains the handles of the items where the bitstreams need an embargo. This file can be a mapfile, so after you batch import some records, you can immediately embargo them.

May be you must alter the script, because of database issues. Please change this:

my $PSQL = "/usr/bin/psql";

in something more appropriate, like:

my $PSQL = "/usr/bin/psql -d dspace -U NAME -h HOSTNAME -p PORT";

Contact me

If you need help, or have any comments, or you just want to inform me that you (are going to) use this, please contact me at: schaik at library dot leidenuniv dot nl