use of org.orcid.jaxb.model.message.DelegationDetails in project ORCID-Source by ORCID.
the class OrcidProfileManagerImplTest method testRevokeDelegate.
@Test
@Transactional
@Rollback(true)
public void testRevokeDelegate() {
OrcidProfile profile1 = createBasicProfile();
Delegation delegation = new Delegation();
profile1.getOrcidBio().setDelegation(delegation);
GivenPermissionTo givenPermissionTo = new GivenPermissionTo();
delegation.setGivenPermissionTo(givenPermissionTo);
DelegationDetails delegationDetails = new DelegationDetails();
delegationDetails.setApprovalDate(new ApprovalDate(DateUtils.convertToXMLGregorianCalendar("2011-03-14T02:34:16")));
DelegateSummary profileSummary = new DelegateSummary(new OrcidIdentifier(DELEGATE_ORCID));
delegationDetails.setDelegateSummary(profileSummary);
givenPermissionTo.getDelegationDetails().add(delegationDetails);
orcidProfileManager.createOrcidProfile(profile1, false, false);
orcidProfileManager.revokeDelegate(TEST_ORCID, DELEGATE_ORCID);
OrcidProfile retrievedProfile = orcidProfileManager.retrieveOrcidProfile(TEST_ORCID);
assertNull(retrievedProfile.getOrcidBio().getDelegation());
}
use of org.orcid.jaxb.model.message.DelegationDetails in project ORCID-Source by ORCID.
the class ManageDelegatorsController method getDelegatorsPlusMeJson.
@RequestMapping(value = "/delegators-and-me.json", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getDelegatorsPlusMeJson() throws NoSuchRequestHandlingMethodException {
Map<String, Object> map = new HashMap<>();
OrcidProfile realProfile = getRealProfile();
Delegation delegation = realProfile.getOrcidBio().getDelegation();
if (delegation != null) {
GivenPermissionBy givenPermissionBy = delegation.getGivenPermissionBy();
String currentOrcid = getEffectiveUserOrcid();
if (givenPermissionBy != null) {
for (Iterator<DelegationDetails> delegationDetailsIterator = givenPermissionBy.getDelegationDetails().iterator(); delegationDetailsIterator.hasNext(); ) {
if (currentOrcid.equals(delegationDetailsIterator.next().getDelegateSummary().getOrcidIdentifier().getPath())) {
delegationDetailsIterator.remove();
}
}
}
map.put("delegators", givenPermissionBy);
}
if (sourceManager.isInDelegationMode()) {
// Add me, so I can switch back to me
DelegationDetails details = new DelegationDetails();
DelegateSummary summary = new DelegateSummary();
details.setDelegateSummary(summary);
String displayName = realProfile.getOrcidBio().getPersonalDetails().retrieveDisplayNameIgnoringVisibility();
summary.setCreditName(new CreditName(displayName));
summary.setOrcidIdentifier(realProfile.getOrcidIdentifier());
map.put("me", details);
}
return map;
}
use of org.orcid.jaxb.model.message.DelegationDetails in project ORCID-Source by ORCID.
the class ManageDelegatorsController method searchDelegatorsForData.
/**
* Search delegators to suggest to user
*/
@RequestMapping(value = "/search-for-data/{query}", method = RequestMethod.GET)
@ResponseBody
public List<Map<String, Object>> searchDelegatorsForData(@PathVariable("query") String query, @RequestParam(value = "limit") int limit) {
List<Map<String, Object>> datums = new ArrayList<>();
Locale locale = getLocale();
query = query.toLowerCase(locale);
for (DelegationDetails delegationDetails : getRealProfile().getOrcidBio().getDelegation().getGivenPermissionBy().getDelegationDetails()) {
DelegateSummary delegateSummary = delegationDetails.getDelegateSummary();
String creditName = delegateSummary.getCreditName().getContent().toLowerCase(locale);
String orcid = delegateSummary.getOrcidIdentifier().getUri();
if (creditName.contains(query) || orcid.contains(query)) {
Map<String, Object> datum = createDatumFromOrgDisambiguated(delegationDetails);
datums.add(datum);
}
}
if (datums.isEmpty()) {
Map<String, Object> map = new HashMap<>();
map.put("noResults", true);
datums.add(map);
}
return datums;
}
use of org.orcid.jaxb.model.message.DelegationDetails in project ORCID-Source by ORCID.
the class AddDelegateForm method getOrcidProfile.
public OrcidProfile getOrcidProfile(String orcid) {
OrcidProfile orcidProfile = new OrcidProfile();
orcidProfile.setOrcidIdentifier(orcid);
OrcidBio orcidBio = new OrcidBio();
orcidProfile.setOrcidBio(orcidBio);
Delegation delegation = new Delegation();
orcidBio.setDelegation(delegation);
GivenPermissionTo givenPermissionTo = new GivenPermissionTo();
delegation.setGivenPermissionTo(givenPermissionTo);
DelegationDetails delegationDetails = new DelegationDetails();
givenPermissionTo.getDelegationDetails().add(delegationDetails);
DelegateSummary delegateSummary = new DelegateSummary(new OrcidIdentifier(delegateOrcid));
delegationDetails.setDelegateSummary(delegateSummary);
return orcidProfile;
}
use of org.orcid.jaxb.model.message.DelegationDetails in project ORCID-Source by ORCID.
the class ManageDelegatorsController method searchDelegators.
/**
* Search DB for disambiguated affiliations to suggest to user
*/
@RequestMapping(value = "/search/{query}", method = RequestMethod.GET)
@ResponseBody
public GivenPermissionBy searchDelegators(@PathVariable("query") String query, @RequestParam(value = "limit") int limit) {
Locale locale = getLocale();
query = query.toLowerCase(locale);
GivenPermissionBy result = new GivenPermissionBy();
String currentOrcid = getEffectiveUserOrcid();
for (DelegationDetails delegationDetails : getRealProfile().getOrcidBio().getDelegation().getGivenPermissionBy().getDelegationDetails()) {
DelegateSummary delegateSummary = delegationDetails.getDelegateSummary();
String creditName = delegateSummary.getCreditName().getContent().toLowerCase(locale);
String orcidUri = delegateSummary.getOrcidIdentifier().getUri();
String orcidPath = delegateSummary.getOrcidIdentifier().getPath();
if (creditName.contains(query) || orcidUri.contains(query) && !(currentOrcid.equals(orcidPath))) {
result.getDelegationDetails().add(delegationDetails);
}
}
return result;
}
Aggregations