Search in sources :

Example 76 with User

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

the class LdapUserQueryTest method testFilterByFirstnameLike.

public void testFilterByFirstnameLike() {
    User user = identityService.createUserQuery().userFirstNameLike("Osc*").singleResult();
    assertNotNull(user);
    user = identityService.createUserQuery().userFirstNameLike("non-exist*").singleResult();
    assertNull(user);
}
Also used : User(org.camunda.bpm.engine.identity.User)

Example 77 with User

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

the class LdapIdentityProviderSession method findUsersWithoutGroupId.

public List<User> findUsersWithoutGroupId(LdapUserQueryImpl query, String userBaseDn, boolean ignorePagination) {
    if (ldapConfiguration.isSortControlSupported()) {
        applyRequestControls(query);
    }
    NamingEnumeration<SearchResult> enumeration = null;
    try {
        String filter = getUserSearchFilter(query);
        enumeration = initialContext.search(userBaseDn, filter, ldapConfiguration.getSearchControls());
        // perform client-side paging
        int resultCount = 0;
        List<User> userList = new ArrayList<User>();
        while (enumeration.hasMoreElements() && (userList.size() < query.getMaxResults() || ignorePagination)) {
            SearchResult result = enumeration.nextElement();
            UserEntity user = transformUser(result);
            if (isAuthenticatedUser(user) || isAuthorized(READ, USER, user.getId())) {
                if (resultCount >= query.getFirstResult() || ignorePagination) {
                    userList.add(user);
                }
                resultCount++;
            }
        }
        return userList;
    } 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 : User(org.camunda.bpm.engine.identity.User) ArrayList(java.util.ArrayList) SearchResult(javax.naming.directory.SearchResult) NamingException(javax.naming.NamingException) IdentityProviderException(org.camunda.bpm.engine.impl.identity.IdentityProviderException) UserEntity(org.camunda.bpm.engine.impl.persistence.entity.UserEntity) NamingException(javax.naming.NamingException) AuthenticationException(javax.naming.AuthenticationException) IdentityProviderException(org.camunda.bpm.engine.impl.identity.IdentityProviderException) BadUserRequestException(org.camunda.bpm.engine.BadUserRequestException)

Example 78 with User

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

the class HalResourceCacheTest method testEntityCaching.

@Test
public void testEntityCaching() {
    String[] userIds = new String[] { "test" };
    // mock user and query
    User user = mock(User.class);
    when(user.getId()).thenReturn(userIds[0]);
    when(user.getFirstName()).thenReturn("kermit");
    UserQuery userQuery = mock(UserQuery.class);
    when(userQuery.userIdIn(Matchers.<String[]>anyVararg())).thenReturn(userQuery);
    when(userQuery.listPage(anyInt(), anyInt())).thenReturn(Arrays.asList(user));
    when(processEngine.getIdentityService().createUserQuery()).thenReturn(userQuery);
    // configure cache
    HalRelationCacheConfiguration configuration = new HalRelationCacheConfiguration();
    configuration.setCacheImplementationClass(DefaultHalResourceCache.class);
    Map<String, Object> halUserConfig = new HashMap<String, Object>();
    halUserConfig.put("capacity", 100);
    halUserConfig.put("secondsToLive", 10000);
    configuration.addCacheConfiguration(HalUser.class, halUserConfig);
    contextListener.configureCaches(configuration);
    // cache exists and is empty
    DefaultHalResourceCache cache = (DefaultHalResourceCache) Hal.getInstance().getHalRelationCache(HalUser.class);
    assertNotNull(cache);
    assertEquals(0, cache.size());
    // get link resolver and resolve user
    HalLinkResolver linkResolver = Hal.getInstance().getLinkResolver(UserRestService.class);
    List<HalResource<?>> halUsers = linkResolver.resolveLinks(userIds, processEngine);
    // mocked user was resolved
    assertNotNull(halUsers);
    assertEquals(1, halUsers.size());
    HalUser halUser = (HalUser) halUsers.get(0);
    assertEquals("kermit", halUser.getFirstName());
    // cache contains user
    assertEquals(1, cache.size());
    // change user mock
    when(user.getFirstName()).thenReturn("fritz");
    // resolve users again
    halUsers = linkResolver.resolveLinks(userIds, processEngine);
    // cached mocked user was resolved with old name
    assertNotNull(halUsers);
    assertEquals(1, halUsers.size());
    halUser = (HalUser) halUsers.get(0);
    assertEquals("kermit", halUser.getFirstName());
    forwardTime(cache.getSecondsToLive() * 3);
    // resolve users again
    halUsers = linkResolver.resolveLinks(userIds, processEngine);
    // new mocked user was resolved with old name
    assertNotNull(halUsers);
    assertEquals(1, halUsers.size());
    halUser = (HalUser) halUsers.get(0);
    assertEquals("fritz", halUser.getFirstName());
}
Also used : DefaultHalResourceCache(org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache) HalUser(org.camunda.bpm.engine.rest.hal.user.HalUser) User(org.camunda.bpm.engine.identity.User) HashMap(java.util.HashMap) HalLinkResolver(org.camunda.bpm.engine.rest.hal.HalLinkResolver) HalResource(org.camunda.bpm.engine.rest.hal.HalResource) Matchers.anyString(org.mockito.Matchers.anyString) UserQuery(org.camunda.bpm.engine.identity.UserQuery) HalRelationCacheConfiguration(org.camunda.bpm.engine.rest.hal.cache.HalRelationCacheConfiguration) HalUser(org.camunda.bpm.engine.rest.hal.user.HalUser) Test(org.junit.Test) AbstractRestServiceTest(org.camunda.bpm.engine.rest.AbstractRestServiceTest)

Example 79 with User

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

the class UserResourceImpl method updateCredentials.

public void updateCredentials(UserCredentialsDto account) {
    ensureNotReadOnly();
    Authentication currentAuthentication = identityService.getCurrentAuthentication();
    if (currentAuthentication != null && currentAuthentication.getUserId() != null) {
        if (!identityService.checkPassword(currentAuthentication.getUserId(), account.getAuthenticatedUserPassword())) {
            throw new InvalidRequestException(Status.BAD_REQUEST, "The given authenticated user password is not valid.");
        }
    }
    User dbUser = findUserObject();
    if (dbUser == null) {
        throw new InvalidRequestException(Status.NOT_FOUND, "User with id " + resourceId + " does not exist");
    }
    dbUser.setPassword(account.getPassword());
    identityService.saveUser(dbUser);
}
Also used : User(org.camunda.bpm.engine.identity.User) Authentication(org.camunda.bpm.engine.impl.identity.Authentication) InvalidRequestException(org.camunda.bpm.engine.rest.exception.InvalidRequestException)

Example 80 with User

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

the class UserRestServiceImpl method queryUsers.

public List<UserProfileDto> queryUsers(UserQueryDto queryDto, Integer firstResult, Integer maxResults) {
    queryDto.setObjectMapper(getObjectMapper());
    UserQuery query = queryDto.toQuery(getProcessEngine());
    List<User> resultList;
    if (firstResult != null || maxResults != null) {
        resultList = executePaginatedQuery(query, firstResult, maxResults);
    } else {
        resultList = query.list();
    }
    return UserProfileDto.fromUserList(resultList);
}
Also used : User(org.camunda.bpm.engine.identity.User) UserQuery(org.camunda.bpm.engine.identity.UserQuery)

Aggregations

User (org.camunda.bpm.engine.identity.User)139 Test (org.junit.Test)67 Group (org.camunda.bpm.engine.identity.Group)29 UserQuery (org.camunda.bpm.engine.identity.UserQuery)24 Authorization (org.camunda.bpm.engine.authorization.Authorization)20 AuthorizationException (org.camunda.bpm.engine.AuthorizationException)12 MissingAuthorization (org.camunda.bpm.engine.authorization.MissingAuthorization)12 Matchers.anyString (org.mockito.Matchers.anyString)11 InvalidRequestException (org.camunda.bpm.engine.rest.exception.InvalidRequestException)10 ArrayList (java.util.ArrayList)9 IdentityService (org.camunda.bpm.engine.IdentityService)8 Tenant (org.camunda.bpm.engine.identity.Tenant)8 ProcessEngineException (org.camunda.bpm.engine.ProcessEngineException)6 Task (org.camunda.bpm.engine.task.Task)6 Date (java.util.Date)5 HashMap (java.util.HashMap)5 GroupQuery (org.camunda.bpm.engine.identity.GroupQuery)5 Authentication (org.camunda.bpm.engine.impl.identity.Authentication)5 UserCredentialsDto (org.camunda.bpm.engine.rest.dto.identity.UserCredentialsDto)5 UserDto (org.camunda.bpm.engine.rest.dto.identity.UserDto)5