Skip to content
This repository has been archived by the owner on Jul 29, 2021. It is now read-only.

Commit

Permalink
feat(user): add user management
Browse files Browse the repository at this point in the history
  • Loading branch information
NicolasGeraud committed Apr 4, 2018
1 parent 73e6239 commit 602c730
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
Expand Up @@ -203,6 +203,9 @@ public Set<Group> findAll() throws TechnicalException {
@Override
public Set<Group> findByIds(Set<String> ids) throws TechnicalException {
LOGGER.debug("JdbcGroupRepository.findByIds({})", ids);
if (ids == null || ids.isEmpty()) {
return Collections.emptySet();
}
final StringBuilder query = new StringBuilder(SELECT_ESCAPED_GROUP_TABLE_NAME
+ " g left join group_administrators ga on g.id = ga.group_id ");
ORM.buildInCondition(true, query, "id", ids);
Expand Down
Expand Up @@ -227,6 +227,17 @@ public Set<Membership> findByReferenceAndRole(MembershipReferenceType referenceT
return queryAndAddRoles(referenceId, referenceType, roleScope, roleName, query.toString());
}

@Override
public Set<Membership> findByRole(RoleScope roleScope, String roleName) throws TechnicalException {
LOGGER.debug("JdbcMembershipRepository.findByRole({}, {})", roleScope, roleName);
final StringBuilder query = new StringBuilder("select m.user_id, m.reference_type, m.reference_id, m.created_at, m.updated_at "
+ " from memberships m"
+ " left join membership_roles mr on mr.user_id = m.user_id" +
" and mr.reference_type = m.reference_type and mr.reference_id = m.reference_id");
initializeWhereClause(null, null, roleScope, roleName, query);
return queryAndAddRoles(null, null, roleScope, roleName, query.toString());
}

private void initializeWhereClause(final String referenceId, final MembershipReferenceType referenceType,
final RoleScope roleScope, final String roleName, final StringBuilder query) {
boolean first = true;
Expand Down Expand Up @@ -372,4 +383,18 @@ public Set<Membership> findByUserAndReferenceType(final String userId, final Mem
throw new TechnicalException("Failed to find membership by user and membership type", ex);
}
}

@Override
public Set<Membership> findByUser(String userId) throws TechnicalException {
LOGGER.debug("JdbcMembershipRepository.findByUser({})", userId);
try {
final String query = "select "
+ " user_id, reference_type, reference_id, created_at, updated_at "
+ " from memberships where user_id = ? ";
return queryAndAddRoles(userId, null, null, null, query);
} catch (final Exception ex) {
LOGGER.error("Failed to find membership by user ", ex);
throw new TechnicalException("Failed to find by user ", ex);
}
}
}
Expand Up @@ -15,9 +15,11 @@
*/
package io.gravitee.repository.jdbc.management;

import io.gravitee.common.data.domain.Page;
import io.gravitee.repository.exceptions.TechnicalException;
import io.gravitee.repository.jdbc.orm.JdbcObjectMapper;
import io.gravitee.repository.management.api.UserRepository;
import io.gravitee.repository.management.api.search.Pageable;
import io.gravitee.repository.management.model.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -104,4 +106,17 @@ public Set<User> findByIds(final List<String> ids) throws TechnicalException {
throw new TechnicalException(msg, ex);
}
}

@Override
public Page<User> search(Pageable pageable) throws TechnicalException {
LOGGER.debug("JdbcAbstractCrudRepository<{}>.findAll()", getOrm().getTableName());
try {
return getResultAsPage(
pageable,
jdbcTemplate.query(getOrm().getSelectAllSql(), getRowMapper()));
} catch (final Exception ex) {
LOGGER.error("Failed to find all {} items:", getOrm().getTableName(), ex);
throw new TechnicalException("Failed to find all " + getOrm().getTableName() + " items", ex);
}
}
}

0 comments on commit 602c730

Please sign in to comment.