Search in sources :

Example 1 with GroupEntity

use of org.camunda.bpm.engine.impl.persistence.entity.GroupEntity in project camunda-bpm-platform by camunda.

the class DbIdentityServiceProvider method saveGroup.

public GroupEntity saveGroup(Group group) {
    GroupEntity groupEntity = (GroupEntity) group;
    if (groupEntity.getRevision() == 0) {
        checkAuthorization(Permissions.CREATE, Resources.GROUP, null);
        getDbEntityManager().insert(groupEntity);
        createDefaultAuthorizations(group);
    } else {
        checkAuthorization(Permissions.UPDATE, Resources.GROUP, group.getId());
        getDbEntityManager().merge(groupEntity);
    }
    return groupEntity;
}
Also used : GroupEntity(org.camunda.bpm.engine.impl.persistence.entity.GroupEntity)

Example 2 with GroupEntity

use of org.camunda.bpm.engine.impl.persistence.entity.GroupEntity in project camunda-bpm-platform by camunda.

the class DbIdentityServiceProvider method createTenantGroupMembership.

public void createTenantGroupMembership(String tenantId, String groupId) {
    checkAuthorization(Permissions.CREATE, Resources.TENANT_MEMBERSHIP, tenantId);
    TenantEntity tenant = findTenantById(tenantId);
    GroupEntity group = findGroupById(groupId);
    ensureNotNull("No tenant found with id '" + tenantId + "'.", "tenant", tenant);
    ensureNotNull("No group found with id '" + groupId + "'.", "group", group);
    TenantMembershipEntity membership = new TenantMembershipEntity();
    membership.setTenant(tenant);
    membership.setGroup(group);
    getDbEntityManager().insert(membership);
    createDefaultTenantMembershipAuthorizations(tenant, group);
}
Also used : TenantMembershipEntity(org.camunda.bpm.engine.impl.persistence.entity.TenantMembershipEntity) TenantEntity(org.camunda.bpm.engine.impl.persistence.entity.TenantEntity) GroupEntity(org.camunda.bpm.engine.impl.persistence.entity.GroupEntity)

Example 3 with GroupEntity

use of org.camunda.bpm.engine.impl.persistence.entity.GroupEntity 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 4 with GroupEntity

use of org.camunda.bpm.engine.impl.persistence.entity.GroupEntity in project camunda-bpm-platform by camunda.

the class DbIdentityServiceProvider method createMembership.

// membership //////////////////////////////////////////////////////
public void createMembership(String userId, String groupId) {
    checkAuthorization(Permissions.CREATE, Resources.GROUP_MEMBERSHIP, groupId);
    UserEntity user = findUserById(userId);
    GroupEntity group = findGroupById(groupId);
    MembershipEntity membership = new MembershipEntity();
    membership.setUser(user);
    membership.setGroup(group);
    getDbEntityManager().insert(membership);
    createDefaultMembershipAuthorizations(userId, groupId);
}
Also used : MembershipEntity(org.camunda.bpm.engine.impl.persistence.entity.MembershipEntity) TenantMembershipEntity(org.camunda.bpm.engine.impl.persistence.entity.TenantMembershipEntity) GroupEntity(org.camunda.bpm.engine.impl.persistence.entity.GroupEntity) UserEntity(org.camunda.bpm.engine.impl.persistence.entity.UserEntity)

Example 5 with GroupEntity

use of org.camunda.bpm.engine.impl.persistence.entity.GroupEntity in project camunda-bpm-platform by camunda.

the class DbIdentityServiceProvider method deleteGroup.

public void deleteGroup(String groupId) {
    checkAuthorization(Permissions.DELETE, Resources.GROUP, groupId);
    GroupEntity group = findGroupById(groupId);
    if (group != null) {
        deleteMembershipsByGroupId(groupId);
        deleteTenantMembershipsOfGroup(groupId);
        deleteAuthorizations(Resources.GROUP, groupId);
        getDbEntityManager().delete(group);
    }
}
Also used : GroupEntity(org.camunda.bpm.engine.impl.persistence.entity.GroupEntity)

Aggregations

GroupEntity (org.camunda.bpm.engine.impl.persistence.entity.GroupEntity)6 Group (org.camunda.bpm.engine.identity.Group)2 TenantMembershipEntity (org.camunda.bpm.engine.impl.persistence.entity.TenantMembershipEntity)2 ArrayList (java.util.ArrayList)1 AuthenticationException (javax.naming.AuthenticationException)1 NamingException (javax.naming.NamingException)1 SearchResult (javax.naming.directory.SearchResult)1 AuthorizationException (org.camunda.bpm.engine.AuthorizationException)1 BadUserRequestException (org.camunda.bpm.engine.BadUserRequestException)1 Authorization (org.camunda.bpm.engine.authorization.Authorization)1 MissingAuthorization (org.camunda.bpm.engine.authorization.MissingAuthorization)1 IdentityProviderException (org.camunda.bpm.engine.impl.identity.IdentityProviderException)1 MembershipEntity (org.camunda.bpm.engine.impl.persistence.entity.MembershipEntity)1 TenantEntity (org.camunda.bpm.engine.impl.persistence.entity.TenantEntity)1 UserEntity (org.camunda.bpm.engine.impl.persistence.entity.UserEntity)1