diff --git a/dspace-api/src/main/java/org/dspace/app/orcid/service/impl/OrcidSynchronizationServiceImpl.java b/dspace-api/src/main/java/org/dspace/app/orcid/service/impl/OrcidSynchronizationServiceImpl.java index 6b719a8aea..a34036f98b 100644 --- a/dspace-api/src/main/java/org/dspace/app/orcid/service/impl/OrcidSynchronizationServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/app/orcid/service/impl/OrcidSynchronizationServiceImpl.java @@ -230,9 +230,6 @@ public class OrcidSynchronizationServiceImpl implements OrcidSynchronizationServ .filter(metadata -> metadataField.equals(metadata.getMetadataField().toString('.'))); } - private String getProfileType() { - return configurationService.getProperty("researcher-profile.type", "Person"); - } private void updateItem(Context context, Item item) throws SQLException { try { diff --git a/dspace-api/src/main/java/org/dspace/app/profile/ResearcherProfile.java b/dspace-api/src/main/java/org/dspace/app/profile/ResearcherProfile.java index 5ce691eb9b..a292f6caad 100644 --- a/dspace-api/src/main/java/org/dspace/app/profile/ResearcherProfile.java +++ b/dspace-api/src/main/java/org/dspace/app/profile/ResearcherProfile.java @@ -48,10 +48,6 @@ public class ResearcherProfile { return UUIDUtils.fromString(dspaceObjectOwner.getAuthority()); } - public String getFullName() { - return dspaceObjectOwner.getValue(); - } - /** * A profile is considered visible if accessible by anonymous users. This method * returns true if the given item has a READ policy related to ANONYMOUS group, diff --git a/dspace-api/src/main/java/org/dspace/authenticate/OrcidAuthenticationBean.java b/dspace-api/src/main/java/org/dspace/authenticate/OrcidAuthenticationBean.java index 4b23347f43..ff35741aa0 100644 --- a/dspace-api/src/main/java/org/dspace/authenticate/OrcidAuthenticationBean.java +++ b/dspace-api/src/main/java/org/dspace/authenticate/OrcidAuthenticationBean.java @@ -206,12 +206,16 @@ public class OrcidAuthenticationBean implements AuthenticationMethod { try { context.turnOffAuthorisationSystem(); + String email = getEmail(person) + .orElseThrow(() -> new IllegalStateException("The email is configured private on orcid")); + String orcid = token.getOrcid(); EPerson eperson = ePersonService.create(context); eperson.setNetid(orcid); - eperson.setEmail(getEmail(person).orElse(orcid)); + + eperson.setEmail(email); eperson.setFirstName(context, getFirstName(person)); eperson.setLastName(context, getLastName(person)); eperson.setCanLogIn(true); diff --git a/dspace-api/src/main/java/org/dspace/eperson/EPersonServiceImpl.java b/dspace-api/src/main/java/org/dspace/eperson/EPersonServiceImpl.java index 7ed128749c..893a673cd1 100644 --- a/dspace-api/src/main/java/org/dspace/eperson/EPersonServiceImpl.java +++ b/dspace-api/src/main/java/org/dspace/eperson/EPersonServiceImpl.java @@ -576,10 +576,10 @@ public class EPersonServiceImpl extends DSpaceObjectServiceImpl impleme @Override public EPerson findByProfileItem(Context context, Item profile) throws SQLException { - List crisOwners = itemService.getMetadata(profile, "dspace", "object", "owner", ANY); - if (CollectionUtils.isEmpty(crisOwners)) { + List owners = itemService.getMetadata(profile, "dspace", "object", "owner", ANY); + if (CollectionUtils.isEmpty(owners)) { return null; } - return find(context, UUIDUtils.fromString(crisOwners.get(0).getAuthority())); + return find(context, UUIDUtils.fromString(owners.get(0).getAuthority())); } } diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/patch/operation/ResearcherProfileRemoveOrcidOperation.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/patch/operation/ResearcherProfileRemoveOrcidOperation.java index 63f6a67247..d1ed635a02 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/patch/operation/ResearcherProfileRemoveOrcidOperation.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/patch/operation/ResearcherProfileRemoveOrcidOperation.java @@ -31,7 +31,7 @@ import org.springframework.stereotype.Component; * Implementation for ResearcherProfile ORCID disconnection. * * Example:
- * curl -X PATCH http://${dspace.server.url}/api/cris/profiles/<:id-eperson> -H " + * curl -X PATCH http://${dspace.server.url}/api/eperson/profiles/<:id-eperson> -H " * Content-Type: application/json" -d '[{ "op": "remove", "path": "/orcid" }]' *
*/ diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/patch/operation/ResearcherProfileReplaceOrcidSyncPreferencesOperation.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/patch/operation/ResearcherProfileReplaceOrcidSyncPreferencesOperation.java index 797e15b43e..dc3b638e40 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/patch/operation/ResearcherProfileReplaceOrcidSyncPreferencesOperation.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/patch/operation/ResearcherProfileReplaceOrcidSyncPreferencesOperation.java @@ -36,7 +36,7 @@ import org.springframework.stereotype.Component; * patches. * * Example: - * curl -X PATCH http://${dspace.server.url}/api/cris/profiles/<:id-eperson> -H " + * curl -X PATCH http://${dspace.server.url}/api/eperson/profiles/<:id-eperson> -H " * Content-Type: application/json" -d '[{ * "op": "replace", * "path": "/orcid/publications", diff --git a/dspace/config/modules/authentication.cfg b/dspace/config/modules/authentication.cfg index 2327bff21a..0b14607c22 100644 --- a/dspace/config/modules/authentication.cfg +++ b/dspace/config/modules/authentication.cfg @@ -26,7 +26,7 @@ # Configuration file: authentication-x509.cfg # ORCID certificate authentication. -# plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.OrcidAuthenticationDelegator +# plugin.sequence.org.dspace.authenticate.AuthenticationMethod = org.dspace.authenticate.OrcidAuthentication # * OIDC Authentication # Plugin class: org.dspace.authenticate.OidcAuthentication