Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

Introduction

Supported in 7.1 or above

Request a Copy was not available in DSpace 7.0. It was restored in DSpace 7.1. See DSpace Release 7.0 Status

The request a copy functionality was added to DSpace as a measure to facilitate access in those cases when uploaded content can not be openly shared with the entire world immediately after submission into DSpace. It gives users an efficient way to request access to the original submitter of the item, who can approve this access with the click of a button. This practice complies with most applicable policies as the submitter interacts directly with the requester on a case by case basis.

Requesting a copy using the User Interface

Users can request a copy by clicking the file thumbnail or the name of a file that the user is restricted from viewing.


The request form asks the user for his or her name, email address and message where the reason for requesting access can be entered.


After clicking "Request copy" at the bottom of this form, the original submitter of the item will receive an email containing the details of the request. The email also contains a link with a token that brings the original submitter to a page where he or she can either grant or reject access. If the original submitter can not evaluate the request, he or she can forward this email to the right person, who can use the link containing the token without having to log into DSpace.



Each of these buttons registers the choice of the submitter, displaying the following form in which an additional reason for granting or rejecting the access can be added.

After hitting send, the contents of this form will be sent together with the associated files to the email address of the requester. In case the access is rejected, only the reason will be sent to the requester. 

While responding positively to a request for copy, the person who approved may also ask the repository administrator to alter the access rights of the item, allowing unrestricted open access to everyone, by checking "Change to open access".

(Optional) Requesting a copy with Help Desk workflow

Available in 7.5 or later.  However, in 7.5, users approving/rejecting these requests via the HelpDesk workflow must first authenticate.  This is a known bug as described in https://github.com/DSpace/DSpace/issues/8636

As of 7.6, the HelpDesk workflow can be performed without requiring authentication (issue #8636 has been fixed)

(Optional) Request Item with HelpDesk intermediary, is steered towards having your Repository Support staff act as a helpdesk that receives all incoming RequestItem requests, and then processes them. This adds the options of "Initial Reply to Requestor" to let the requestor know that their request is being worked on, and an option "Author Permission Request" which allows the helpdesk to email the author of the document, as not all documents are deposited by the author, or the author will need to be tracked down by a support staff, as DSpace might not have their current email address.


Initial Reply to Requester


Author permission request, includes information about the original request (requester name, requester email, requester's reason for requesting). The author/submitter's name and email address will be pre-populated in the form from the submitter, but the email address and author name are editable, as the submitter's of content to DSpace aren't always the author.


Email templates

Most of the email templates used by Request a Copy are treated just like other email templates in DSpace. The templates can be found in the /config/emails directory and can be altered just by changing the contents and restarting tomcat.

request_item.admintemplate for the message that will be sent to the administrator of the repository, after the original submitter requests to have the permissions changed for this item.
request_item.authortemplate for the message that will be sent to the original submitter of an item with the request for copy.

The templates for emails that the requester receives, that could have been customized by the approver in the aforementioned dialog are not managed as separate email template files. These defaults are stored in the Messages.properties file under the keys

itemRequest.response.body.approveDefault message for informing the requester of the approval
itemRequest.response.body.rejectDefault message for informing the requester of the rejection
itemRequest.response.body.contactAuthorDefault message for the helpdesk to contact the author
itemRequest.response.body.contactRequesterDefault message for the helpdesk to contact the requester

Configuration parameters

Request a copy is enabled by default. These configuration parameters in dspace.cfg relate to Request a Copy:

Property:

request.item.type

Example Value

request.item.type = all

Informational Note

This parameter manages who can file a request for an item. The parameter is optional. When it is empty or commented out, request a copy is disabled across the entire repository. When set to all, any user can file a request for a copy. When set to logged, only registered users can file a request for copy.

Property:

mail.helpdesk

Example Value

mail.helpdesk = foo@bar.com

Informational Note

The email address assigned to this parameter will receive the emails both for granting or rejecting request a copy requests, as well as requests to change item policies.

This parameter is optional. If it is empty or commented out, it will default to mail.admin.

WARNING: This setting is only utilized if the RequestItemHelpdeskStrategy bean is enabled in [dspace]/config/spring/api/requestitem.xml (see below)

Property:

request.item.helpdesk.override

Example Value

request.item.helpdesk.override = true

Informational Note

Should all Request Copy emails go to the mail.helpdesk instead of the item submitter? Default is false, which sends Item Requests to the item submitter.

WARNING: This setting is only utilized if the RequestItemHelpdeskStrategy bean is enabled in [dspace]/config/spring/api/requestitem.xml (see below)



Selecting Request a Copy strategy

The process that DSpace uses to determine who is the recipient of the Item Request is configurable in this Spring file: [dspace]/config/spring/api/requestitem.xml

New in DSpace 7

The strategy is selected using a Spring <alias alias='org.dspace.app.requestitem.RequestItemAuthorExtractor' name='theStrategyClass'/>.  Previously this was done by moving the RequestItemAuthorExtractor id to the selected <bean> definition.

New in DSpace 7.6

The strategy is selected by configuring it into the <bean/> for RequestItemMetadataStrategy as a constructor argument.


Configure who gets request via a metadata field

By default the RequestItemMetadataStrategy is enabled, but falls back to the Item Submitter eperson's name and email. You can configure the RequestItemMetadataStrategy to load the author's name and email address if you set that information into an item metadata field.  For example:

Syntax for 7.6 or later
<!-- This alias defines that you want to use the RequestItemMetadataStrategy (this is enabled by default) --> 
<!-- This bean specifies that you want to use the RequestItemMetadataStrategy (this is enabled by default) -->
<bean class="org.dspace.app.requestitem.RequestItemEmailNotifier" lazy-init='false'>
        <description>This sends various emails between the requestor and the grantor.</description>

        <!-- Modify the "ref" here to point at the "RequestItemHelpdeskStrategy" -->
        <constructor-arg index='0'
                         ref='org.dspace.app.requestitem.RequestItemMetadataStrategy'/> 
</bean>  

<!-- This bean allows you to specify which metadata field is used (if any) -->
<bean class="org.dspace.app.requestitem.RequestItemMetadataStrategy"
      id="org.dspace.app.requestitem.RequestItemMetadataStrategy">
  <!-- 
  Uncomment these properties if you want lookup in metadata the email and the name of the author to contact for request copy.
  If you don't configure that or if the requested item doesn't have these metadata the submitter data are used as fail over
 
  <property name="emailMetadata" value="schema.element.qualifier" />
  <property name="fullNameMatadata" value="schema.element.qualifier" /> 
 
  --> 
</bean>
Syntax for 7.5 or earlier
<!-- This alias defines that you want to use the RequestItemMetadataStrategy (this is enabled by default) -->
<alias alias='org.dspace.app.requestitem.RequestItemAuthorExtractor'
       name='org.dspace.app.requestitem.RequestItemMetadataStrategy'/>

<!-- This bean allows you to specify which metadata field is used (if any) -->
<bean class="org.dspace.app.requestitem.RequestItemMetadataStrategy"
      id="org.dspace.app.requestitem.RequestItemMetadataStrategy"
      autowireCandidate="true">
  <!-- 
  Uncomment these properties if you want lookup in metadata the email and the name of the author to contact for request copy.
  If you don't configure that or if the requested item doesn't have these metadata the submitter data are used as fail over
 
  <property name="emailMetadata" value="schema.element.qualifier" />
  <property name="fullNameMatadata" value="schema.element.qualifier" /> 
 
  --> 
</bean>

Configure this as follows:

  1. Create a metadata field which you'd like to use to store this email address (and optionally a second metadata field for the full name).
    1. Hint: You may wish to add this metadata field to your "metadata.hide.*" settings in local.cfg in order to ensure this metadata field is hidden from normal users & is only visible to Administrative users.  That way this email address will NOT appear in Item display pages (except to Administrators)
  2. Uncomment the "emailMetadata" setting above, and configure it's "value" to use the new metadata field.
  3. Edit the Item(s) which you wish to use this field.  Add the new metadata field to those items, given it a value of the email address which will receive the request for copy.  By default, if an Item does NOT have this metadata field, the request for copy will still go to the Item's submitter.

Configure all requests to go to a helpdesk email

Prior to 7.6, all users who wish to respond to a request to the helpdesk email must first login to DSpace.  See https://github.com/DSpace/DSpace/issues/8636   This was fixed in 7.6.

Another common request strategy is the use a single Helpdesk email address to receive all of these requests (see corresponding helpdesk configs in dspace.cfg above). If you wish to use the Helpdesk Strategy, you must replace the references to the default RequestItemMetadataStrategy,  bean with the RequestItemHelpdeskStrategy bean:

Syntax for 7.6 or later
<!-- To change the settings, you need to modify the constructor-arg (see below) to use the "RequestItemEmailNotifier" bean.-->
<bean class="org.dspace.app.requestitem.RequestItemEmailNotifier" lazy-init='false'>
        <description>This sends various emails between the requestor and the grantor.</description>

        <!-- Modify the "ref" here to point at the "RequestItemHelpdeskStrategy" -->
        <constructor-arg index='0'
                         ref='org.dspace.app.requestitem.RequestItemHelpdeskStrategy'/> 
</bean>


Syntax for 7.5 or earlier
<!-- Change this alias to use "RequestItemHelpdeskStrategy" bean-->
<alias alias='org.dspace.app.requestitem.RequestItemAuthorExtractor'
       name='org.dspace.app.requestitem.RequestItemHelpdeskStrategy'/>

<!-- Ensure the bean is uncommented (it should be by default) -->
<bean class="org.dspace.app.requestitem.RequestItemHelpdeskStrategy"
        id="org.dspace.app.requestitem.RequestItemHelpdeskStrategy"
        autowireCandidate="true"/>

Configure all requests to go to the administrators of a Collection

This strategy sends mail to all of the members of the administrators group for the collection which owns the item.

Syntax for 7.6 or later
<!-- To change the settings, you need to modify the constructor-arg (see below) to use the "CollectionAdministratorsRequestItemStrategy" bean.-->
<bean class="org.dspace.app.requestitem.RequestItemEmailNotifier" lazy-init='false'>
        <description>This sends various emails between the requestor and the grantor.</description>

        <!-- Modify the "ref" here to point at the "CollectionAdministratorsRequestItemStrategy" -->
        <constructor-arg index='0'
                         ref='org.dspace.app.requestitem.CollectionAdministratorsRequestItemStrategy'/> 
</bean>
Syntax for 7.5 or earlier
<!-- Change this alias to use "CollectionAdministratorsRequestItemStrategy" bean-->
<alias alias='org.dspace.app.requestitem.RequestItemAuthorExtractor'
       name='org.dspace.app.requestitem.CollectionAdministratorsRequestItemStrategy'/>

<!-- Ensure the bean is uncommented (it should be by default) --> 
<bean class='org.dspace.app.requestitem.CollectionAdministratorsRequestItemStrategy'
      id='org.dspace.app.requestitem.CollectionAdministratorsRequestItemStrategy'
      autowireCandidate='true'/>

Combine multiple strategies

This strategy combines the results of other strategies into a single list of email recipients.  Pass the strategy a single constructor argument, being a list of the strategy beans whose output should be combined.

In the following example, email will be sent to the address(es) found in the configured metadata fields (or to the submitter if none), and to the owning collection's administrators.

Syntax for 7.6 or later
<!-- To change the settings, you need to modify the constructor-arg (see below) to use the "CombiningRequestItemStrategy" bean.-->
<bean class="org.dspace.app.requestitem.RequestItemEmailNotifier" lazy-init='false'>
        <description>This sends various emails between the requestor and the grantor.</description>

        <!-- Modify the "ref" here to point at the "CombiningRequestItemStrategy" -->
        <constructor-arg index='0'
                         ref='org.dspace.app.requestitem.CombiningRequestItemStrategy'/> 
</bean>

<!-- This bean is where you can combine multiple strategies by referencing them in the <list> below -->
<bean class='org.dspace.app.requestitem.CombiningRequestItemStrategy'
      id='org.dspace.app.requestitem.CombiningRequestItemStrategy'>
    <constructor-arg>
        <description>A list of references to RequestItemAuthorExtractor beans</description>
        <list>
            <ref bean='org.dspace.app.requestitem.RequestItemMetadataStrategy'/>
            <ref bean='org.dspace.app.requestitem.CollectionAdministratorsRequestItemStrategy'/>
        </list>
    </constructor-arg>
</bean>
Syntax for 7.5 or earlier
<!-- Change this alias to use "CombiningRequestItemStrategy" bean-->
<alias alias='org.dspace.app.requestitem.RequestItemAuthorExtractor'
       name='org.dspace.app.requestitem.CombiningRequestItemStrategy'/>

<!-- This bean is where you can combine multiple strategies by referencing them in the <list> below -->
<bean class='org.dspace.app.requestitem.CombiningRequestItemStrategy'
      id='org.dspace.app.requestitem.CombiningRequestItemStrategy'
      autowireCandidate='true'>
    <constructor-arg>
        <description>A list of references to RequestItemAuthorExtractor beans</description>
        <list>
            <ref bean='org.dspace.app.requestitem.RequestItemMetadataStrategy'/>
            <ref bean='org.dspace.app.requestitem.CollectionAdministratorsRequestItemStrategy'/>
        </list>
    </constructor-arg>
</bean>
  • No labels