Search in sources :

Example 11 with ClientScopeEntity

use of org.orcid.persistence.jpa.entities.ClientScopeEntity in project ORCID-Source by ORCID.

the class JpaJaxbClientAdapterTest method getClientDetailsEntity.

private ClientDetailsEntity getClientDetailsEntity() {
    Date now = new Date();
    ClientDetailsEntity entity = new ClientDetailsEntity();
    entity.setAllowAutoDeprecate(true);
    entity.setAuthenticationProviderId("authentication-provider-id");
    entity.setClientDescription("description");
    entity.setClientName("client-name");
    entity.setClientType(ClientType.CREATOR);
    entity.setClientWebsite("client-website");
    entity.setDateCreated(now);
    entity.setEmailAccessReason("email-access-reason");
    entity.setGroupProfileId("group-profile-id");
    entity.setId("id");
    entity.setLastModified(now);
    entity.setPersistentTokensEnabled(true);
    entity.setClientSecretForJpa("secret-1");
    entity.setClientSecretForJpa("secret-2");
    entity.setClientSecretForJpa("secret-3");
    HashSet<ClientAuthorisedGrantTypeEntity> clientAuthorisedGrantTypeEntities = new HashSet<ClientAuthorisedGrantTypeEntity>();
    ClientAuthorisedGrantTypeEntity cagt1 = new ClientAuthorisedGrantTypeEntity();
    cagt1.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cagt1.setDateCreated(now);
    cagt1.setGrantType("grant-type-1");
    cagt1.setLastModified(now);
    ClientAuthorisedGrantTypeEntity cagt2 = new ClientAuthorisedGrantTypeEntity();
    cagt2.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cagt2.setDateCreated(now);
    cagt2.setGrantType("grant-type-2");
    cagt2.setLastModified(now);
    ClientAuthorisedGrantTypeEntity cagt3 = new ClientAuthorisedGrantTypeEntity();
    cagt3.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cagt3.setDateCreated(now);
    cagt3.setGrantType("grant-type-3");
    cagt3.setLastModified(now);
    clientAuthorisedGrantTypeEntities.add(cagt1);
    clientAuthorisedGrantTypeEntities.add(cagt2);
    clientAuthorisedGrantTypeEntities.add(cagt3);
    entity.setClientAuthorizedGrantTypes(clientAuthorisedGrantTypeEntities);
    List<ClientGrantedAuthorityEntity> clientGrantedAuthorityEntities = new ArrayList<ClientGrantedAuthorityEntity>();
    ClientGrantedAuthorityEntity cga1 = new ClientGrantedAuthorityEntity();
    cga1.setAuthority("authority-1");
    cga1.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cga1.setDateCreated(now);
    cga1.setLastModified(now);
    ClientGrantedAuthorityEntity cga2 = new ClientGrantedAuthorityEntity();
    cga2.setAuthority("authority-2");
    cga2.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cga2.setDateCreated(now);
    cga2.setLastModified(now);
    ClientGrantedAuthorityEntity cga3 = new ClientGrantedAuthorityEntity();
    cga3.setAuthority("authority-3");
    cga3.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cga3.setDateCreated(now);
    cga3.setLastModified(now);
    clientGrantedAuthorityEntities.add(cga1);
    clientGrantedAuthorityEntities.add(cga2);
    clientGrantedAuthorityEntities.add(cga3);
    entity.setClientGrantedAuthorities(clientGrantedAuthorityEntities);
    SortedSet<ClientRedirectUriEntity> clientRegisteredRedirectUris = new TreeSet<ClientRedirectUriEntity>();
    ClientRedirectUriEntity rUri1 = new ClientRedirectUriEntity();
    rUri1.setClientDetailsEntity(new ClientDetailsEntity("id"));
    rUri1.setDateCreated(now);
    rUri1.setLastModified(now);
    rUri1.setPredefinedClientScope(ScopePathType.ACTIVITIES_READ_LIMITED.value());
    rUri1.setRedirectUri("redirect-uri-1");
    rUri1.setRedirectUriType("type-1");
    rUri1.setUriActType("uri-act-type-1");
    rUri1.setUriGeoArea("uri-geo-area-1");
    ClientRedirectUriEntity rUri2 = new ClientRedirectUriEntity();
    rUri2.setClientDetailsEntity(new ClientDetailsEntity("id"));
    rUri2.setDateCreated(now);
    rUri2.setLastModified(now);
    rUri2.setPredefinedClientScope(ScopePathType.ACTIVITIES_UPDATE.value());
    rUri2.setRedirectUri("redirect-uri-2");
    rUri2.setRedirectUriType("type-2");
    rUri2.setUriActType("uri-act-type-2");
    rUri2.setUriGeoArea("uri-geo-area-2");
    ClientRedirectUriEntity rUri3 = new ClientRedirectUriEntity();
    rUri3.setClientDetailsEntity(new ClientDetailsEntity("id"));
    rUri3.setDateCreated(now);
    rUri3.setLastModified(now);
    rUri3.setPredefinedClientScope(ScopePathType.AFFILIATIONS_CREATE.value());
    rUri3.setRedirectUri("redirect-uri-3");
    rUri3.setRedirectUriType("type-3");
    rUri3.setUriActType("uri-act-type-3");
    rUri3.setUriGeoArea("uri-geo-area-3");
    clientRegisteredRedirectUris.add(rUri1);
    clientRegisteredRedirectUris.add(rUri2);
    clientRegisteredRedirectUris.add(rUri3);
    entity.setClientRegisteredRedirectUris(clientRegisteredRedirectUris);
    Set<ClientResourceIdEntity> clientResourceIds = new HashSet<ClientResourceIdEntity>();
    ClientResourceIdEntity cri1 = new ClientResourceIdEntity();
    cri1.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cri1.setDateCreated(now);
    cri1.setLastModified(now);
    cri1.setResourceId("resource-id-1");
    ClientResourceIdEntity cri2 = new ClientResourceIdEntity();
    cri2.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cri2.setDateCreated(now);
    cri2.setLastModified(now);
    cri2.setResourceId("resource-id-2");
    ClientResourceIdEntity cri3 = new ClientResourceIdEntity();
    cri3.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cri3.setDateCreated(now);
    cri3.setLastModified(now);
    cri3.setResourceId("resource-id-3");
    clientResourceIds.add(cri1);
    clientResourceIds.add(cri2);
    clientResourceIds.add(cri3);
    entity.setClientResourceIds(clientResourceIds);
    Set<ClientScopeEntity> clientScopes = new HashSet<ClientScopeEntity>();
    ClientScopeEntity cs1 = new ClientScopeEntity();
    cs1.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cs1.setDateCreated(now);
    cs1.setLastModified(now);
    cs1.setScopeType("scope-type-1");
    ClientScopeEntity cs2 = new ClientScopeEntity();
    cs2.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cs2.setDateCreated(now);
    cs2.setLastModified(now);
    cs2.setScopeType("scope-type-2");
    ClientScopeEntity cs3 = new ClientScopeEntity();
    cs3.setClientDetailsEntity(new ClientDetailsEntity("id"));
    cs3.setDateCreated(now);
    cs3.setLastModified(now);
    cs3.setScopeType("scope-type-3");
    clientScopes.add(cs1);
    clientScopes.add(cs2);
    clientScopes.add(cs3);
    entity.setClientScopes(clientScopes);
    Set<CustomEmailEntity> customEmails = new HashSet<CustomEmailEntity>();
    CustomEmailEntity ce1 = new CustomEmailEntity();
    ce1.setClientDetailsEntity(new ClientDetailsEntity("id"));
    ce1.setContent("content-1");
    ce1.setDateCreated(now);
    ce1.setEmailType(EmailType.ACCOUNT_DEPRECATED);
    ce1.setHtml(true);
    ce1.setLastModified(now);
    ce1.setSender("sender-1");
    ce1.setSubject("subject-1");
    CustomEmailEntity ce2 = new CustomEmailEntity();
    ce2.setClientDetailsEntity(new ClientDetailsEntity("id"));
    ce2.setContent("content-2");
    ce2.setDateCreated(now);
    ce2.setEmailType(EmailType.ACCOUNT_DEPRECATED);
    ce2.setHtml(true);
    ce2.setLastModified(now);
    ce2.setSender("sender-2");
    ce2.setSubject("subject-2");
    CustomEmailEntity ce3 = new CustomEmailEntity();
    ce3.setClientDetailsEntity(new ClientDetailsEntity("id"));
    ce3.setContent("content-3");
    ce3.setDateCreated(now);
    ce3.setEmailType(EmailType.ACCOUNT_DEPRECATED);
    ce3.setHtml(true);
    ce3.setLastModified(now);
    ce3.setSender("sender-3");
    ce3.setSubject("subject-3");
    customEmails.add(ce1);
    customEmails.add(ce2);
    customEmails.add(ce3);
    entity.setCustomEmails(customEmails);
    return entity;
}
Also used : ClientDetailsEntity(org.orcid.persistence.jpa.entities.ClientDetailsEntity) ClientGrantedAuthorityEntity(org.orcid.persistence.jpa.entities.ClientGrantedAuthorityEntity) ArrayList(java.util.ArrayList) ClientResourceIdEntity(org.orcid.persistence.jpa.entities.ClientResourceIdEntity) Date(java.util.Date) ClientRedirectUriEntity(org.orcid.persistence.jpa.entities.ClientRedirectUriEntity) ClientScopeEntity(org.orcid.persistence.jpa.entities.ClientScopeEntity) ClientAuthorisedGrantTypeEntity(org.orcid.persistence.jpa.entities.ClientAuthorisedGrantTypeEntity) TreeSet(java.util.TreeSet) CustomEmailEntity(org.orcid.persistence.jpa.entities.CustomEmailEntity) HashSet(java.util.HashSet)

Example 12 with ClientScopeEntity

use of org.orcid.persistence.jpa.entities.ClientScopeEntity in project ORCID-Source by ORCID.

the class MembersManagerImpl method updateClientTypeDueMemberTypeUpdate.

private void updateClientTypeDueMemberTypeUpdate(String memberId, MemberType memberType) {
    List<ClientDetailsEntity> clients = clientDetailsDao.findByGroupId(memberId);
    ClientType clientType = this.getClientType(memberType);
    Date now = new Date();
    for (ClientDetailsEntity client : clients) {
        Set<String> newSetOfScopes = ClientType.getScopes(clientType);
        Set<ClientScopeEntity> existingScopes = client.getClientScopes();
        Iterator<ClientScopeEntity> scopesIterator = existingScopes.iterator();
        while (scopesIterator.hasNext()) {
            ClientScopeEntity clientScopeEntity = scopesIterator.next();
            if (newSetOfScopes.contains(clientScopeEntity.getScopeType())) {
                newSetOfScopes.remove(clientScopeEntity.getScopeType());
            } else {
                clientScopeDao.deleteScope(client.getClientId(), clientScopeEntity.getScopeType());
            }
        }
        // Insert the new scopes
        for (String newScope : newSetOfScopes) {
            ClientScopeEntity clientScopeEntity = new ClientScopeEntity();
            clientScopeEntity.setClientDetailsEntity(client);
            clientScopeEntity.setScopeType(newScope);
            clientScopeEntity.setDateCreated(now);
            clientScopeEntity.setLastModified(now);
            clientScopeDao.persist(clientScopeEntity);
        }
        // Update client type
        clientDetailsDao.updateClientType(clientType, client.getClientId());
    }
}
Also used : ClientDetailsEntity(org.orcid.persistence.jpa.entities.ClientDetailsEntity) ClientType(org.orcid.jaxb.model.clientgroup.ClientType) ClientScopeEntity(org.orcid.persistence.jpa.entities.ClientScopeEntity) Date(java.util.Date)

Example 13 with ClientScopeEntity

use of org.orcid.persistence.jpa.entities.ClientScopeEntity in project ORCID-Source by ORCID.

the class ClientDetailsManagerImpl method getClientScopeEntities.

private Set<ClientScopeEntity> getClientScopeEntities(Set<String> clientScopeStrings, ClientDetailsEntity clientDetailsEntity) {
    Set<ClientScopeEntity> clientScopeEntities = new HashSet<ClientScopeEntity>(clientScopeStrings.size());
    for (String clientScope : clientScopeStrings) {
        ClientScopeEntity clientScopeEntity = new ClientScopeEntity();
        clientScopeEntity.setClientDetailsEntity(clientDetailsEntity);
        clientScopeEntity.setScopeType(clientScope);
        clientScopeEntities.add(clientScopeEntity);
    }
    return clientScopeEntities;
}
Also used : ClientScopeEntity(org.orcid.persistence.jpa.entities.ClientScopeEntity) HashSet(java.util.HashSet)

Example 14 with ClientScopeEntity

use of org.orcid.persistence.jpa.entities.ClientScopeEntity in project ORCID-Source by ORCID.

the class ClientDetailsManagerTest method testAddScopesToClient.

@Test
public void testAddScopesToClient() {
    ClientDetailsEntity clientDetails = clientDetailsDao.find("APP-6666666666666666");
    Set<String> scopes = new HashSet<>();
    scopes.add("some-scope");
    scopes.add("another-scope");
    clientDetailsManager.addScopesToClient(scopes, clientDetails);
    ClientDetailsEntity updated = clientDetailsDao.find("APP-6666666666666666");
    assertFalse(clientDetails.getClientScopes().size() == updated.getClientScopes().size());
    assertTrue(clientDetails.getClientScopes().size() == updated.getClientScopes().size() - 2);
    boolean foundFirstScope = false;
    boolean foundSecondScope = false;
    for (ClientScopeEntity clientScope : updated.getClientScopes()) {
        if ("some-scope".equals(clientScope.getScopeType())) {
            foundFirstScope = true;
        } else if ("another-scope".equals(clientScope.getScopeType())) {
            foundSecondScope = true;
        }
    }
    assertTrue(foundFirstScope);
    assertTrue(foundSecondScope);
}
Also used : ClientDetailsEntity(org.orcid.persistence.jpa.entities.ClientDetailsEntity) ClientScopeEntity(org.orcid.persistence.jpa.entities.ClientScopeEntity) HashSet(java.util.HashSet) DBUnitTest(org.orcid.test.DBUnitTest) Test(org.junit.Test)

Example 15 with ClientScopeEntity

use of org.orcid.persistence.jpa.entities.ClientScopeEntity in project ORCID-Source by ORCID.

the class AddScopesToExistingClients method updateScopes.

private void updateScopes(ClientDetailsEntity clientDetails) {
    for (ScopePathType scope : scopes) {
        boolean alreadyHaveScope = false;
        for (ClientScopeEntity existingScope : clientDetails.getClientScopes()) {
            if (scope.value().equals(existingScope.getScopeType())) {
                alreadyHaveScope = true;
                break;
            }
        }
        if (!alreadyHaveScope) {
            ClientScopeEntity clientScope = new ClientScopeEntity();
            clientScope.setClientDetailsEntity(clientDetails);
            clientScope.setScopeType(scope.value());
            clientScope.setDateCreated(new Date());
            clientScope.setLastModified(new Date());
            clientDetails.getClientScopes().add(clientScope);
            clientDetailsManager.merge(clientDetails);
            clientsUpdated += 1;
            System.out.println("Client " + clientDetails.getId() + " has been updated");
        } else {
            System.out.println("Client " + clientDetails.getId() + " already have the " + scope.value() + " scope");
        }
    }
}
Also used : ClientScopeEntity(org.orcid.persistence.jpa.entities.ClientScopeEntity) ScopePathType(org.orcid.jaxb.model.message.ScopePathType) Date(java.util.Date)

Aggregations

ClientScopeEntity (org.orcid.persistence.jpa.entities.ClientScopeEntity)16 Date (java.util.Date)11 ClientDetailsEntity (org.orcid.persistence.jpa.entities.ClientDetailsEntity)11 HashSet (java.util.HashSet)10 ClientAuthorisedGrantTypeEntity (org.orcid.persistence.jpa.entities.ClientAuthorisedGrantTypeEntity)7 ClientGrantedAuthorityEntity (org.orcid.persistence.jpa.entities.ClientGrantedAuthorityEntity)7 ClientResourceIdEntity (org.orcid.persistence.jpa.entities.ClientResourceIdEntity)7 ArrayList (java.util.ArrayList)6 TreeSet (java.util.TreeSet)4 ClientRedirectUriEntity (org.orcid.persistence.jpa.entities.ClientRedirectUriEntity)4 CustomEmailEntity (org.orcid.persistence.jpa.entities.CustomEmailEntity)4 ClientType (org.orcid.jaxb.model.clientgroup.ClientType)3 ProfileEntity (org.orcid.persistence.jpa.entities.ProfileEntity)3 Test (org.junit.Test)1 ScopePathType (org.orcid.jaxb.model.message.ScopePathType)1 SubmissionDate (org.orcid.jaxb.model.message.SubmissionDate)1 ClientSecretEntity (org.orcid.persistence.jpa.entities.ClientSecretEntity)1 DBUnitTest (org.orcid.test.DBUnitTest)1 Transactional (org.springframework.transaction.annotation.Transactional)1