use of org.orcid.jaxb.model.v3.dev1.record.Email in project ORCID-Source by ORCID.
the class PersonDetailsManagerReadOnlyImpl method getPersonDetails.
@Override
public Person getPersonDetails(String orcid) {
long lastModifiedTime = getLastModified(orcid);
Person person = new Person();
person.setName(recordNameManager.getRecordName(orcid));
person.setBiography(biographyManager.getBiography(orcid));
Addresses addresses = addressManager.getAddresses(orcid);
if (addresses.getAddress() != null) {
Addresses filteredAddresses = new Addresses();
filteredAddresses.setAddress(new ArrayList<Address>(addresses.getAddress()));
person.setAddresses(filteredAddresses);
}
PersonExternalIdentifiers extIds = externalIdentifierManager.getExternalIdentifiers(orcid);
if (extIds.getExternalIdentifiers() != null) {
PersonExternalIdentifiers filteredExtIds = new PersonExternalIdentifiers();
filteredExtIds.setExternalIdentifiers(new ArrayList<PersonExternalIdentifier>(extIds.getExternalIdentifiers()));
person.setExternalIdentifiers(filteredExtIds);
}
Keywords keywords = profileKeywordManager.getKeywords(orcid);
if (keywords.getKeywords() != null) {
Keywords filteredKeywords = new Keywords();
filteredKeywords.setKeywords(new ArrayList<Keyword>(keywords.getKeywords()));
person.setKeywords(filteredKeywords);
}
OtherNames otherNames = otherNameManager.getOtherNames(orcid);
if (otherNames.getOtherNames() != null) {
OtherNames filteredOtherNames = new OtherNames();
filteredOtherNames.setOtherNames(new ArrayList<OtherName>(otherNames.getOtherNames()));
person.setOtherNames(filteredOtherNames);
}
ResearcherUrls rUrls = researcherUrlManager.getResearcherUrls(orcid);
if (rUrls.getResearcherUrls() != null) {
ResearcherUrls filteredRUrls = new ResearcherUrls();
filteredRUrls.setResearcherUrls(new ArrayList<ResearcherUrl>(rUrls.getResearcherUrls()));
person.setResearcherUrls(filteredRUrls);
}
Emails emails = emailManager.getEmails(orcid);
if (emails.getEmails() != null) {
Emails filteredEmails = new Emails();
filteredEmails.setEmails(new ArrayList<Email>(emails.getEmails()));
person.setEmails(filteredEmails);
}
return person;
}
use of org.orcid.jaxb.model.v3.dev1.record.Email in project ORCID-Source by ORCID.
the class AdminControllerTest method verifyEmailTest.
@Test
public void verifyEmailTest() {
TargetProxyHelper.injectIntoProxy(emailManager, "notificationManager", mockNotificationManager);
TargetProxyHelper.injectIntoProxy(adminController, "emailManagerReadOnly", mockEmailManagerReadOnly);
when(mockEmailManagerReadOnly.findOrcidIdByEmail("not-verified@email.com")).thenReturn("4444-4444-4444-4499");
HttpServletRequest request = mock(HttpServletRequest.class);
HttpSession session = mock(HttpSession.class);
when(request.getSession()).thenReturn(session);
// Add not verified email
Email email = new Email();
email.setEmail("not-verified@email.com");
email.setCurrent(false);
email.setPrimary(false);
email.setVerified(false);
email.setVisibility(Visibility.PUBLIC);
emailManager.addEmail(request, "4444-4444-4444-4499", email);
// Verify the email
adminController.adminVerifyEmail("not-verified@email.com");
EmailEntity emailEntity = emailManager.find("not-verified@email.com");
assertNotNull(emailEntity);
assertTrue(emailEntity.getVerified());
TargetProxyHelper.injectIntoProxy(emailManager, "notificationManager", notificationManager);
}
use of org.orcid.jaxb.model.v3.dev1.record.Email in project ORCID-Source by ORCID.
the class ClaimControllerTest method testClaim.
@Test
@Transactional
public void testClaim() {
String email = "public_0000-0000-0000-0001@test.orcid.org";
SecurityContextHolder.getContext().setAuthentication(null);
when(profileEntityCacheManager.retrieve(Mockito.anyString())).thenReturn(getProfileEntityToTestClam(false));
when(encryptionManager.decryptForExternalUse(any(String.class))).thenReturn(email);
HttpServletRequest request = mock(HttpServletRequest.class);
HttpServletResponse response = mock(HttpServletResponse.class);
when(request.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE)).thenReturn(null);
when(request.getLocale()).thenReturn(java.util.Locale.US);
String orcid = "0000-0000-0000-0001";
when(emailManager.findOrcidIdByEmail(email)).thenReturn(orcid);
when(profileEntityManager.claimProfileAndUpdatePreferences(any(String.class), any(String.class), any(Locale.class), any(Claim.class))).thenReturn(true);
Claim claim = new Claim();
claim.setActivitiesVisibilityDefault(org.orcid.pojo.ajaxForm.Visibility.valueOf(Visibility.PRIVATE));
claim.setPassword(Text.valueOf("passwordTest1"));
claim.setPasswordConfirm(Text.valueOf("passwordTest1"));
Checkbox checked = new Checkbox();
checked.setValue(true);
claim.setSendChangeNotifications(checked);
claim.setSendOrcidNews(checked);
claim.setTermsOfUse(checked);
try {
claim = claimController.submitClaimJson(request, response, email, claim);
assertNotNull(claim);
assertTrue(claim.getErrors().isEmpty());
assertTrue("Value was: " + claim.getUrl(), claim.getUrl().endsWith("/my-orcid?recordClaimed"));
} catch (NoSuchRequestHandlingMethodException e) {
fail();
} catch (UnsupportedEncodingException e) {
fail();
}
}
use of org.orcid.jaxb.model.v3.dev1.record.Email in project ORCID-Source by ORCID.
the class PasswordResetController method sendReactivation.
@RequestMapping(value = "/sendReactivation.json", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON)
public ResponseEntity<?> sendReactivation(@RequestParam("email") String orcidOrEmail) {
String orcid = null;
String email = null;
if (orcidOrEmail.contains("@")) {
orcid = emailManager.findOrcidIdByEmail(orcidOrEmail);
email = orcidOrEmail;
} else {
orcid = orcidOrEmail;
}
// If email is null it means the user used the orcid id to login, so, retrieve the email from the DB
if (email == null) {
Email entity = emailManager.findPrimaryEmail(orcid);
email = entity.getEmail();
}
notificationManager.sendReactivationEmail(email, orcid);
return ResponseEntity.ok("{\"sent\":true}");
}
use of org.orcid.jaxb.model.v3.dev1.record.Email in project ORCID-Source by ORCID.
the class OrcidInfo method groupEmails.
private Map<String, List<Email>> groupEmails(Emails emails) {
if (emails == null || emails.getEmails() == null) {
return null;
}
Map<String, List<Email>> groups = new TreeMap<String, List<Email>>();
for (Email e : emails.getEmails()) {
if (groups.containsKey(e.getEmail())) {
groups.get(e.getEmail()).add(e);
} else {
List<Email> list = new ArrayList<Email>();
list.add(e);
groups.put(e.getEmail(), list);
}
}
return groups;
}
Aggregations