use of org.orcid.jaxb.model.record_rc4.Emails in project ORCID-Source by ORCID.
the class PublicAPISecurityManagerV2Test method filterEmailsTest.
@Test
public void filterEmailsTest() {
Emails x = getEmailsElement(Visibility.PUBLIC, Visibility.PUBLIC, Visibility.PUBLIC);
assertEquals(3, x.getEmails().size());
publicAPISecurityManagerV2.filter(x);
assertEquals(3, x.getEmails().size());
assertAllArePublic(x.getEmails());
x = getEmailsElement(Visibility.PUBLIC, Visibility.PUBLIC, Visibility.LIMITED);
assertEquals(3, x.getEmails().size());
publicAPISecurityManagerV2.filter(x);
assertEquals(2, x.getEmails().size());
assertAllArePublic(x.getEmails());
x = getEmailsElement(Visibility.PUBLIC, Visibility.LIMITED, Visibility.PRIVATE);
assertEquals(3, x.getEmails().size());
publicAPISecurityManagerV2.filter(x);
assertEquals(1, x.getEmails().size());
assertAllArePublic(x.getEmails());
x = getEmailsElement(Visibility.PRIVATE, Visibility.LIMITED, Visibility.PRIVATE);
assertEquals(3, x.getEmails().size());
publicAPISecurityManagerV2.filter(x);
assertTrue(x.getEmails().isEmpty());
}
use of org.orcid.jaxb.model.record_rc4.Emails in project ORCID-Source by ORCID.
the class PublicAPISecurityManagerV2Test method getEmailsElement.
private Emails getEmailsElement(Visibility... vs) {
Emails elements = new Emails();
for (Visibility v : vs) {
Email element = new Email();
element.setVisibility(v);
if (elements.getEmails() == null) {
elements.setEmails(new ArrayList<Email>());
}
elements.getEmails().add(element);
}
return elements;
}
use of org.orcid.jaxb.model.record_rc4.Emails in project ORCID-Source by ORCID.
the class PublicV2ApiServiceDelegatorImpl method viewEmails.
@Override
public Response viewEmails(String orcid) {
long lastModifiedTime = getLastModifiedTime(orcid);
Emails emails = emailManagerReadOnly.getPublicEmails(orcid, lastModifiedTime);
publicAPISecurityManagerV2.filter(emails);
ElementUtils.setPathToEmail(emails, orcid);
Api2_0_LastModifiedDatesHelper.calculateLastModified(emails);
sourceUtilsReadOnly.setSourceName(emails);
return Response.ok(emails).build();
}
use of org.orcid.jaxb.model.record_rc4.Emails in project ORCID-Source by ORCID.
the class ManageProfileController method validateDeprecateProfile.
@RequestMapping(value = "/validate-deprecate-profile.json", method = RequestMethod.POST)
@ResponseBody
public DeprecateProfile validateDeprecateProfile(@RequestBody DeprecateProfile deprecateProfile) {
validateFormData(deprecateProfile);
if (!deprecateProfile.getErrors().isEmpty()) {
return deprecateProfile;
}
String currentUserOrcid = getCurrentUserOrcid();
ProfileEntity primaryEntity = profileEntityCacheManager.retrieve(currentUserOrcid);
ProfileEntity deprecatingEntity = getDeprecatingEntity(deprecateProfile);
validateDeprecatingEntity(deprecatingEntity, primaryEntity, deprecateProfile);
if (deprecateProfile.getErrors() != null && !deprecateProfile.getErrors().isEmpty()) {
return deprecateProfile;
}
validateDeprecateAccountRequest(deprecateProfile, deprecatingEntity);
if (deprecateProfile.getErrors() != null && !deprecateProfile.getErrors().isEmpty()) {
return deprecateProfile;
}
Emails deprecatingEmails = emailManager.getEmails(deprecatingEntity.getId(), 0l);
Emails primaryEmails = emailManager.getEmails(primaryEntity.getId(), 0l);
String primaryAccountName = RecordNameUtils.getPublicName(primaryEntity.getRecordNameEntity());
String deprecatingAccountName = RecordNameUtils.getPublicName(deprecatingEntity.getRecordNameEntity());
deprecateProfile.setPrimaryAccountName(primaryAccountName);
deprecateProfile.setPrimaryOrcid(currentUserOrcid);
deprecateProfile.setDeprecatingAccountName(deprecatingAccountName);
deprecateProfile.setDeprecatingOrcid(deprecatingEntity.getId());
if (deprecatingEmails != null) {
deprecateProfile.setDeprecatingEmails(deprecatingEmails.getEmails().stream().map(e -> e.getEmail()).collect(Collectors.toList()));
}
if (primaryEmails != null) {
deprecateProfile.setPrimaryEmails(primaryEmails.getEmails().stream().map(e -> e.getEmail()).collect(Collectors.toList()));
}
return deprecateProfile;
}
use of org.orcid.jaxb.model.record_rc4.Emails in project ORCID-Source by ORCID.
the class MemberV2ApiServiceDelegatorImpl method viewEmails.
@Override
public Response viewEmails(String orcid) {
Emails emails = null;
long lastModified = getLastModifiedTime(orcid);
try {
// return all emails if client has /email/read-private scope
orcidSecurityManager.checkClientAccessAndScopes(orcid, ScopePathType.EMAIL_READ_PRIVATE);
emails = emailManagerReadOnly.getEmails(orcid, lastModified);
// Lets copy the list so we don't modify the cached collection
List<Email> filteredList = new ArrayList<Email>(emails.getEmails());
emails = new Emails();
emails.setEmails(filteredList);
} catch (OrcidAccessControlException e) {
emails = emailManagerReadOnly.getEmails(orcid, lastModified);
// Lets copy the list so we don't modify the cached collection
List<Email> filteredList = new ArrayList<Email>(emails.getEmails());
emails = new Emails();
emails.setEmails(filteredList);
// Filter just in case client doesn't have the /email/read-private
// scope
orcidSecurityManager.checkAndFilter(orcid, emails.getEmails(), ScopePathType.ORCID_BIO_READ_LIMITED);
}
ElementUtils.setPathToEmail(emails, orcid);
Api2_0_LastModifiedDatesHelper.calculateLastModified(emails);
sourceUtils.setSourceName(emails);
return Response.ok(emails).build();
}
Aggregations