Autoarchivo - Corregir mapeo de embargo
Created by: mesanhueza
Actualmente hay un error a la hora de mostrar los datos de los embargos. En el mapeo del SNRD, todos los registros se muestran como si fueran de Acceso Abierto, cuando algunos no lo son.
Tareas
-
Corregir el mapeo del embargo a fin de que aparezca de la siguiente forma: info:eu-repo/semantics/closedAccess
info:eu-repo/semantics/openAccess
info:eu-repo/semantics/restrictedAccess
info:eu-repo/semantics/embargoedAccess
Solución
Para solucionar este problema era necesario exponer la fecha de embargo en el OAI. Esto se hace agregando código al archivo UtilItem.java del modulo de dspace-oai
. Para ello, me base en el Merge Request #4616 que hizo el Sedici:
- Copie el archivo
dspace-oai/src/main/java/org/dspace/xoai/util/ItemUtils.java
a la rutadspace/modules/oai/src/main/java/org/dspace/xoai/util/ItemUtils.java
. De esta forma ante una posible actualización no perderíamos el código. - Me base en el siguiente archivo del Sedici, copiando el código desde la línea 233 a la 255
- Actualicé el import AuthorizeManager por AuthorizeService, agregando el siguiente código:
private static final AuthorizeService authorizeService = AuthorizeServiceFactory.getInstance().getAuthorizeService();
Update
En el archivo dspace/modules/oai/src/main/java/org/dspace/xoai/util/ItemUtils.java
se creó el método *getAccessRightsValue basado en el archivo ItemUtils de CICBA. Este método permite conocer si un archivo, de un recurso en particular, se encuentra embargado o no. También, se comentó el código para entender su funcionamiento.
Ver código en: https://github.com/crai-unrn/DSpace/blob/master-unrn2/dspace/modules/oai/src/main/java/org/dspace/xoai/util/ItemUtils.java#L354