Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: "New in DSpace 7" no longer valid in 7.6

...

Info
titleNew 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.


Info
titleNew 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:

Code Block
titleSyntax for 7.6 or later
<!-- 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'/>

<bean class="org.dspace.app.requestitem.RequestItemMetadataStrategy"
      id="org.dspace.app.requestitem.RequestItemMetadataStrategy"
      autowireCandidate="true">
  <!-- 
This bean Uncomment these properties ifspecifies that you want lookupto in metadatause the emailRequestItemMetadataStrategy and(this theis nameenabled 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

Info

At this time, 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

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 first comment out the default RequestItemMetadataStrategy,  bean and uncomment this bean:

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>


Code Block
titleSyntax 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

Info

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:

Code Block
titleSyntax 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>


Code Block
titleSyntax 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.

Code Block
titleSyntax 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>


Code Block
titleSyntax 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.

Code Block
titleSyntax 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
Code Block
<alias alias='org.dspace.app.requestitem.RequestItemAuthorExtractor'
       name='org.dspace.app.requestitem.RequestItemHelpdeskStrategyCombiningRequestItemStrategy'/> 
</bean>

<!-- HelpDesk to instead get RequestItem emails-- This bean is where you can combine multiple strategies by referencing them in the <list> below -->
<bean class="'org.dspace.app.requestitem.RequestItemHelpdeskStrategy"CombiningRequestItemStrategy'
        id="'org.dspace.app.requestitem.RequestItemHelpdeskStrategy".requestitem.CombiningRequestItemStrategy'>
    <constructor-arg>
        <description>A list of references to RequestItemAuthorExtractor beans</description>
        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.

Code Block
<alias alias<list>
            <ref bean='org.dspace.app.requestitem.RequestItemAuthorExtractorRequestItemMetadataStrategy'/>
            <ref namebean='org.dspace.app.requestitem.CollectionAdministratorsRequestItemStrategy'/>

<bean class='org.dspace.app.requestitem.CollectionAdministratorsRequestItemStrategy'
        id='org.dspace.app.requestitem.CollectionAdministratorsRequestItemStrategy'</list>
      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.

</constructor-arg>
</bean>


Code Block
titleSyntax for 7.5 or earlier
<!-- Change this alias to use "CombiningRequestItemStrategy" bean-->
Code Block
<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>

...