Search in sources :

Example 51 with Group

use of org.camunda.bpm.engine.identity.Group in project camunda-bpm-platform by camunda.

the class LdapGroupQueryTest method testPaginationWithAuthenticatedUser.

public void testPaginationWithAuthenticatedUser() {
    createGrantAuthorization(GROUP, "management", "oscar", READ);
    createGrantAuthorization(GROUP, "consulting", "oscar", READ);
    createGrantAuthorization(GROUP, "external", "oscar", READ);
    try {
        processEngineConfiguration.setAuthorizationEnabled(true);
        identityService.setAuthenticatedUserId("oscar");
        Set<String> groupNames = new HashSet<String>();
        List<Group> groups = identityService.createGroupQuery().listPage(0, 2);
        assertEquals(2, groups.size());
        checkPagingResults(groupNames, groups.get(0).getId(), groups.get(1).getId());
        groups = identityService.createGroupQuery().listPage(2, 2);
        assertEquals(1, groups.size());
        assertFalse(groupNames.contains(groups.get(0).getId()));
        groupNames.add(groups.get(0).getId());
        groups = identityService.createGroupQuery().listPage(4, 2);
        assertEquals(0, groups.size());
        identityService.setAuthenticatedUserId("daniel");
        groups = identityService.createGroupQuery().listPage(0, 2);
        assertEquals(0, groups.size());
    } finally {
        processEngineConfiguration.setAuthorizationEnabled(false);
        identityService.clearAuthentication();
        for (Authorization authorization : authorizationService.createAuthorizationQuery().list()) {
            authorizationService.deleteAuthorization(authorization.getId());
        }
    }
}
Also used : Authorization(org.camunda.bpm.engine.authorization.Authorization) Group(org.camunda.bpm.engine.identity.Group) HashSet(java.util.HashSet)

Example 52 with Group

use of org.camunda.bpm.engine.identity.Group in project camunda-bpm-platform by camunda.

the class LdapGroupQueryTest method testFilterByGroupIdIn.

public void testFilterByGroupIdIn() {
    List<Group> groups = identityService.createGroupQuery().groupIdIn("external", "management").list();
    assertEquals(2, groups.size());
    for (Group group : groups) {
        if (!group.getId().equals("external") && !group.getId().equals("management")) {
            fail();
        }
    }
}
Also used : Group(org.camunda.bpm.engine.identity.Group)

Example 53 with Group

use of org.camunda.bpm.engine.identity.Group in project camunda-bpm-platform by camunda.

the class LdapIdentityProviderSession method findGroupByQueryCriteria.

public List<Group> findGroupByQueryCriteria(LdapGroupQuery query) {
    ensureContextInitialized();
    String groupBaseDn = composeDn(ldapConfiguration.getGroupSearchBase(), ldapConfiguration.getBaseDn());
    if (ldapConfiguration.isSortControlSupported()) {
        applyRequestControls(query);
    }
    NamingEnumeration<SearchResult> enumeration = null;
    try {
        String filter = getGroupSearchFilter(query);
        enumeration = initialContext.search(groupBaseDn, filter, ldapConfiguration.getSearchControls());
        // perform client-side paging
        int resultCount = 0;
        List<Group> groupList = new ArrayList<Group>();
        while (enumeration.hasMoreElements() && groupList.size() < query.getMaxResults()) {
            SearchResult result = enumeration.nextElement();
            GroupEntity group = transformGroup(result);
            if (isAuthorized(READ, GROUP, group.getId())) {
                if (resultCount >= query.getFirstResult()) {
                    groupList.add(group);
                }
                resultCount++;
            }
        }
        return groupList;
    } catch (NamingException e) {
        throw new IdentityProviderException("Could not query for users", e);
    } finally {
        try {
            if (enumeration != null) {
                enumeration.close();
            }
        } catch (Exception e) {
        // ignore silently
        }
    }
}
Also used : Group(org.camunda.bpm.engine.identity.Group) GroupEntity(org.camunda.bpm.engine.impl.persistence.entity.GroupEntity) ArrayList(java.util.ArrayList) SearchResult(javax.naming.directory.SearchResult) NamingException(javax.naming.NamingException) IdentityProviderException(org.camunda.bpm.engine.impl.identity.IdentityProviderException) NamingException(javax.naming.NamingException) AuthenticationException(javax.naming.AuthenticationException) IdentityProviderException(org.camunda.bpm.engine.impl.identity.IdentityProviderException) BadUserRequestException(org.camunda.bpm.engine.BadUserRequestException)

Example 54 with Group

use of org.camunda.bpm.engine.identity.Group in project camunda-bpm-platform by camunda.

the class TaskQueryImpl method getGroupsForCandidateUser.

protected List<String> getGroupsForCandidateUser(String candidateUser) {
    List<Group> groups = Context.getCommandContext().getReadOnlyIdentityProvider().createGroupQuery().groupMember(candidateUser).list();
    List<String> groupIds = new ArrayList<String>();
    for (Group group : groups) {
        groupIds.add(group.getId());
    }
    return groupIds;
}
Also used : Group(org.camunda.bpm.engine.identity.Group) ArrayList(java.util.ArrayList)

Example 55 with Group

use of org.camunda.bpm.engine.identity.Group in project camunda-bpm-platform by camunda.

the class GroupRestServiceImpl method queryGroups.

public List<GroupDto> queryGroups(GroupQueryDto queryDto, Integer firstResult, Integer maxResults) {
    queryDto.setObjectMapper(getObjectMapper());
    GroupQuery query = queryDto.toQuery(getProcessEngine());
    List<Group> resultList;
    if (firstResult != null || maxResults != null) {
        resultList = executePaginatedQuery(query, firstResult, maxResults);
    } else {
        resultList = query.list();
    }
    return GroupDto.fromGroupList(resultList);
}
Also used : Group(org.camunda.bpm.engine.identity.Group) GroupQuery(org.camunda.bpm.engine.identity.GroupQuery)

Aggregations

Group (org.camunda.bpm.engine.identity.Group)92 Test (org.junit.Test)34 User (org.camunda.bpm.engine.identity.User)29 GroupQuery (org.camunda.bpm.engine.identity.GroupQuery)22 Authorization (org.camunda.bpm.engine.authorization.Authorization)13 ArrayList (java.util.ArrayList)12 Matchers.anyString (org.mockito.Matchers.anyString)12 AuthorizationException (org.camunda.bpm.engine.AuthorizationException)10 MissingAuthorization (org.camunda.bpm.engine.authorization.MissingAuthorization)9 Tenant (org.camunda.bpm.engine.identity.Tenant)9 IdentityService (org.camunda.bpm.engine.IdentityService)7 InvalidRequestException (org.camunda.bpm.engine.rest.exception.InvalidRequestException)7 UserQuery (org.camunda.bpm.engine.identity.UserQuery)4 Authentication (org.camunda.bpm.engine.impl.identity.Authentication)4 Before (org.junit.Before)4 HashMap (java.util.HashMap)3 HashSet (java.util.HashSet)3 AuthorizationService (org.camunda.bpm.engine.AuthorizationService)3 ProcessDefinition (org.camunda.bpm.engine.repository.ProcessDefinition)3 ProcessEngine (org.camunda.bpm.engine.ProcessEngine)2