use of org.orcid.jaxb.model.v3.dev1.client.Client in project ORCID-Source by ORCID.
the class MemberV3ApiServiceDelegatorImpl method viewClient.
@Override
public Response viewClient(String clientId) {
orcidSecurityManager.checkScopes(ScopePathType.READ_PUBLIC);
ClientSummary client = clientManagerReadOnly.getSummary(clientId);
return Response.ok(client).build();
}
use of org.orcid.jaxb.model.v3.dev1.client.Client in project ORCID-Source by ORCID.
the class MemberV3ApiServiceDelegator_GeneralTest method testViewClient.
@Test
public void testViewClient() {
Response response = serviceDelegator.viewClient("APP-6666666666666666");
assertNotNull(response.getEntity());
assertTrue(response.getEntity() instanceof ClientSummary);
ClientSummary clientSummary = (ClientSummary) response.getEntity();
assertEquals("Source Client 2", clientSummary.getName());
assertEquals("A test source client", clientSummary.getDescription());
}
use of org.orcid.jaxb.model.v3.dev1.client.Client in project ORCID-Source by ORCID.
the class PublicV3ApiServiceDelegatorTest method testViewClient.
@Test
public void testViewClient() {
Response response = serviceDelegator.viewClient("APP-6666666666666666");
assertNotNull(response.getEntity());
assertTrue(response.getEntity() instanceof Client);
Client client = (Client) response.getEntity();
assertEquals("Source Client 2", client.getName());
assertEquals("A test source client", client.getDescription());
}
use of org.orcid.jaxb.model.v3.dev1.client.Client in project ORCID-Source by ORCID.
the class RecordTest method testViewRecordFromMemberAPI.
@Test
public void testViewRecordFromMemberAPI() throws InterruptedException, JSONException {
String accessToken = getAccessToken();
assertNotNull(accessToken);
ClientResponse response = memberV3Dev1ApiClient.viewRecord(getUser1OrcidId(), accessToken);
assertNotNull(response);
assertEquals("invalid " + response, 200, response.getStatus());
Record record = response.getEntity(Record.class);
assertNotNull(record);
assertNotNull(record.getOrcidIdentifier());
assertEquals(getUser1OrcidId(), record.getOrcidIdentifier().getPath());
// Check the visibility of every activity that exists
if (record.getActivitiesSummary() != null) {
// Distinctions
if (record.getActivitiesSummary().getDistinctions() != null) {
Distinctions e = record.getActivitiesSummary().getDistinctions();
if (e.getSummaries() != null) {
for (DistinctionSummary s : e.getSummaries()) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
// Educations
if (record.getActivitiesSummary().getEducations() != null) {
Educations e = record.getActivitiesSummary().getEducations();
if (e.getSummaries() != null) {
for (EducationSummary s : e.getSummaries()) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
// Employments
if (record.getActivitiesSummary().getEmployments() != null) {
Employments e = record.getActivitiesSummary().getEmployments();
if (e.getSummaries() != null) {
for (EmploymentSummary s : e.getSummaries()) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
// InvitedPositions
if (record.getActivitiesSummary().getInvitedPositions() != null) {
InvitedPositions e = record.getActivitiesSummary().getInvitedPositions();
if (e.getSummaries() != null) {
for (InvitedPositionSummary s : e.getSummaries()) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
// Memberships
if (record.getActivitiesSummary().getMemberships() != null) {
Memberships e = record.getActivitiesSummary().getMemberships();
if (e.getSummaries() != null) {
for (MembershipSummary s : e.getSummaries()) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
// Qualifications
if (record.getActivitiesSummary().getQualifications() != null) {
Qualifications e = record.getActivitiesSummary().getQualifications();
if (e.getSummaries() != null) {
for (QualificationSummary s : e.getSummaries()) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
// Services
if (record.getActivitiesSummary().getServices() != null) {
Services e = record.getActivitiesSummary().getServices();
if (e.getSummaries() != null) {
for (ServiceSummary s : e.getSummaries()) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
// Fundings
if (record.getActivitiesSummary().getFundings() != null) {
Fundings f = record.getActivitiesSummary().getFundings();
List<FundingGroup> groups = f.getFundingGroup();
if (groups != null) {
for (FundingGroup fGroup : groups) {
List<FundingSummary> summaries = fGroup.getFundingSummary();
if (summaries != null) {
for (FundingSummary s : summaries) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// If the visibility is PRIVATE the client should be the owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
}
}
// PeerReviews
if (record.getActivitiesSummary().getPeerReviews() != null) {
PeerReviews p = record.getActivitiesSummary().getPeerReviews();
List<PeerReviewGroup> groups = p.getPeerReviewGroup();
if (groups != null) {
for (PeerReviewGroup pGroup : groups) {
List<PeerReviewSummary> summaries = pGroup.getPeerReviewSummary();
if (summaries != null) {
for (PeerReviewSummary s : summaries) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// If the visibility is PRIVATE the client should be the owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
}
}
// Works
if (record.getActivitiesSummary().getWorks() != null) {
Works w = record.getActivitiesSummary().getWorks();
List<WorkGroup> groups = w.getWorkGroup();
if (groups != null) {
for (WorkGroup wGroup : groups) {
List<WorkSummary> summaries = wGroup.getWorkSummary();
if (summaries != null) {
for (WorkSummary s : summaries) {
assertNotNull(s.getSource());
assertNotNull(s.getVisibility());
Visibility v = s.getVisibility();
// If the visibility is PRIVATE the client should be the owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), s.getSource().retrieveSourcePath());
}
}
}
}
}
}
}
// Check the visibility of every biography elements that exists
if (record.getPerson() != null) {
// Address
if (record.getPerson().getAddresses() != null) {
Addresses addresses = record.getPerson().getAddresses();
List<Address> list = addresses.getAddress();
if (list != null) {
for (Address o : list) {
assertNotNull(o.getSource());
assertNotNull(o.getVisibility());
Visibility v = o.getVisibility();
// If the visibility is PRIVATE the client should be the owner
if (Visibility.PRIVATE.equals(v)) {
assertEquals(getClient1ClientId(), o.getSource().retrieveSourcePath());
}
}
}
}
// Biography
if (record.getPerson().getBiography() != null) {
Biography b = record.getPerson().getBiography();
if (b != null) {
assertNotNull(b.getVisibility());
if (Visibility.PRIVATE.equals(b.getVisibility())) {
fail("Visibility is private");
}
}
}
// Emails
if (record.getPerson().getEmails() != null) {
Emails emails = record.getPerson().getEmails();
List<Email> list = emails.getEmails();
if (list != null) {
for (Email e : list) {
assertNotNull(e.getVisibility());
if (Visibility.PRIVATE.equals(e.getVisibility())) {
fail("Email " + e.getEmail() + " is private");
}
}
}
}
// External identifiers
if (record.getPerson().getExternalIdentifiers() != null) {
PersonExternalIdentifiers extIds = record.getPerson().getExternalIdentifiers();
List<PersonExternalIdentifier> list = extIds.getExternalIdentifiers();
if (list != null) {
for (PersonExternalIdentifier e : list) {
assertNotNull(e.getVisibility());
if (Visibility.PRIVATE.equals(e.getVisibility())) {
assertEquals(getClient1ClientId(), e.getSource().retrieveSourcePath());
}
}
}
}
// Keywords
if (record.getPerson().getKeywords() != null) {
Keywords keywords = record.getPerson().getKeywords();
List<Keyword> list = keywords.getKeywords();
if (list != null) {
for (Keyword e : list) {
assertNotNull(e.getVisibility());
if (Visibility.PRIVATE.equals(e.getVisibility())) {
assertEquals(getClient1ClientId(), e.getSource().retrieveSourcePath());
}
}
}
}
// Name
if (record.getPerson().getName() != null) {
Name name = record.getPerson().getName();
if (Visibility.PRIVATE.equals(name.getVisibility())) {
fail("Name is private");
}
}
// Other names
if (record.getPerson().getOtherNames() != null) {
OtherNames otherNames = record.getPerson().getOtherNames();
List<OtherName> list = otherNames.getOtherNames();
if (list != null) {
for (OtherName e : list) {
assertNotNull(e.getVisibility());
if (Visibility.PRIVATE.equals(e.getVisibility())) {
assertEquals(getClient1ClientId(), e.getSource().retrieveSourcePath());
}
}
}
}
// Researcher urls
if (record.getPerson().getResearcherUrls() != null) {
ResearcherUrls rUrls = record.getPerson().getResearcherUrls();
List<ResearcherUrl> list = rUrls.getResearcherUrls();
if (list != null) {
for (ResearcherUrl e : list) {
assertNotNull(e.getVisibility());
if (Visibility.PRIVATE.equals(e.getVisibility())) {
assertEquals(getClient1ClientId(), e.getSource().retrieveSourcePath());
}
}
}
}
}
}
use of org.orcid.jaxb.model.v3.dev1.client.Client in project ORCID-Source by ORCID.
the class MapperFacadeFactory method getClientMapperFacade.
public MapperFacade getClientMapperFacade() {
MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
ClassMapBuilder<ClientSummary, ClientDetailsEntity> clientSummaryClassMap = mapperFactory.classMap(ClientSummary.class, ClientDetailsEntity.class);
clientSummaryClassMap.field("name", "clientName");
clientSummaryClassMap.field("description", "clientDescription");
clientSummaryClassMap.byDefault();
clientSummaryClassMap.register();
ClassMapBuilder<Client, ClientDetailsEntity> clientClassMap = mapperFactory.classMap(Client.class, ClientDetailsEntity.class);
clientClassMap.field("name", "clientName");
clientClassMap.field("description", "clientDescription");
clientClassMap.field("website", "clientWebsite");
clientClassMap.field("allowAutoDeprecate", "allowAutoDeprecate");
clientClassMap.fieldBToA("clientId", "id");
clientClassMap.fieldBToA("clientType", "clientType");
clientClassMap.fieldBToA("groupProfileId", "groupProfileId");
clientClassMap.fieldBToA("authenticationProviderId", "authenticationProviderId");
clientClassMap.fieldBToA("persistentTokensEnabled", "persistentTokensEnabled");
clientClassMap.customize(new CustomMapper<Client, ClientDetailsEntity>() {
/**
* On the way in, from Client to ClientDetailsEntity, we need to care about mapping the redirect uri's, since all config features will not change from UI requests
*/
@Override
public void mapAtoB(Client a, ClientDetailsEntity b, MappingContext context) {
Map<String, ClientRedirectUriEntity> existingRedirectUriEntitiesMap = new HashMap<String, ClientRedirectUriEntity>();
if (b.getClientRegisteredRedirectUris() != null && !b.getClientRegisteredRedirectUris().isEmpty()) {
existingRedirectUriEntitiesMap = ClientRedirectUriEntity.mapByUriAndType(b.getClientRegisteredRedirectUris());
}
if (b.getClientRegisteredRedirectUris() != null) {
b.getClientRegisteredRedirectUris().clear();
} else {
b.setClientRegisteredRedirectUris(new TreeSet<ClientRedirectUriEntity>());
}
if (a.getClientRedirectUris() != null) {
for (ClientRedirectUri cru : a.getClientRedirectUris()) {
String rUriKey = ClientRedirectUriEntity.getUriAndTypeKey(cru.getRedirectUri(), cru.getRedirectUriType());
if (existingRedirectUriEntitiesMap.containsKey(rUriKey)) {
ClientRedirectUriEntity existingEntity = existingRedirectUriEntitiesMap.get(rUriKey);
existingEntity.setLastModified(new Date());
existingEntity.setPredefinedClientScope(ScopePathType.getScopesAsSingleString(cru.getPredefinedClientScopes()));
existingEntity.setUriActType(cru.getUriActType());
existingEntity.setUriGeoArea(cru.getUriGeoArea());
b.getClientRegisteredRedirectUris().add(existingEntity);
} else {
ClientRedirectUriEntity newEntity = new ClientRedirectUriEntity();
newEntity.setClientDetailsEntity(b);
newEntity.setDateCreated(new Date());
newEntity.setLastModified(new Date());
newEntity.setPredefinedClientScope(ScopePathType.getScopesAsSingleString(cru.getPredefinedClientScopes()));
newEntity.setRedirectUri(cru.getRedirectUri());
newEntity.setRedirectUriType(cru.getRedirectUriType());
newEntity.setUriActType(cru.getUriActType());
newEntity.setUriGeoArea(cru.getUriGeoArea());
b.getClientRegisteredRedirectUris().add(newEntity);
}
}
}
}
/**
* On the way out, from ClientDetailsEntity to Client, we just need to care about mapping the redirect uri's and the primary client secret since all config features will not be visible on the UI
*/
@Override
public void mapBtoA(ClientDetailsEntity b, Client a, MappingContext context) {
if (b.getClientSecrets() != null) {
for (ClientSecretEntity entity : b.getClientSecrets()) {
if (entity.isPrimary()) {
a.setDecryptedSecret(encryptionManager.decryptForInternalUse(entity.getClientSecret()));
}
}
}
if (b.getRegisteredRedirectUri() != null) {
a.setClientRedirectUris(new HashSet<ClientRedirectUri>());
for (ClientRedirectUriEntity entity : b.getClientRegisteredRedirectUris()) {
ClientRedirectUri element = new ClientRedirectUri();
element.setRedirectUri(entity.getRedirectUri());
element.setRedirectUriType(entity.getRedirectUriType());
element.setUriActType(entity.getUriActType());
element.setUriGeoArea(entity.getUriGeoArea());
element.setPredefinedClientScopes(ScopePathType.getScopesFromSpaceSeparatedString(entity.getPredefinedClientScope()));
a.getClientRedirectUris().add(element);
}
}
}
});
clientClassMap.register();
return mapperFactory.getMapperFacade();
}
Aggregations