Search in sources :

Example 11 with UserBean

use of io.apiman.manager.api.beans.idm.UserBean in project apiman by apiman.

the class OrganizationResourceImpl method listMembers.

/**
 * @see IOrganizationResource#listMembers(java.lang.String)
 */
@Override
public List<MemberBean> listMembers(String organizationId) throws OrganizationNotFoundException, NotAuthorizedException {
    // Only members are allowed to see other members
    if (!securityContext.isMemberOf(organizationId)) {
        throw ExceptionFactory.notAuthorizedException();
    }
    get(organizationId);
    try {
        Set<RoleMembershipBean> memberships = query.getOrgMemberships(organizationId);
        TreeMap<String, MemberBean> members = new TreeMap<>();
        storage.beginTx();
        for (RoleMembershipBean membershipBean : memberships) {
            String userId = membershipBean.getUserId();
            String roleId = membershipBean.getRoleId();
            RoleBean role = storage.getRole(roleId);
            // Role does not exist!
            if (role == null) {
                continue;
            }
            MemberBean member = members.get(userId);
            if (member == null) {
                UserBean user = storage.getUser(userId);
                member = new MemberBean();
                member.setEmail(user.getEmail());
                member.setUserId(userId);
                member.setUserName(user.getFullName());
                member.setRoles(new ArrayList<>());
                members.put(userId, member);
            }
            MemberRoleBean mrb = new MemberRoleBean();
            mrb.setRoleId(roleId);
            mrb.setRoleName(role.getName());
            member.getRoles().add(mrb);
            if (member.getJoinedOn() == null || membershipBean.getCreatedOn().compareTo(member.getJoinedOn()) < 0) {
                member.setJoinedOn(membershipBean.getCreatedOn());
            }
        }
        return new ArrayList<>(members.values());
    } catch (StorageException e) {
        throw new SystemErrorException(e);
    } finally {
        storage.rollbackTx();
    }
}
Also used : SystemErrorException(io.apiman.manager.api.rest.exceptions.SystemErrorException) MemberRoleBean(io.apiman.manager.api.beans.members.MemberRoleBean) RoleBean(io.apiman.manager.api.beans.idm.RoleBean) ArrayList(java.util.ArrayList) TreeMap(java.util.TreeMap) RoleMembershipBean(io.apiman.manager.api.beans.idm.RoleMembershipBean) MemberBean(io.apiman.manager.api.beans.members.MemberBean) UserBean(io.apiman.manager.api.beans.idm.UserBean) MemberRoleBean(io.apiman.manager.api.beans.members.MemberRoleBean) StorageException(io.apiman.manager.api.core.exceptions.StorageException)

Aggregations

UserBean (io.apiman.manager.api.beans.idm.UserBean)11 StorageException (io.apiman.manager.api.core.exceptions.StorageException)4 ArrayList (java.util.ArrayList)4 Date (java.util.Date)3 RoleBean (io.apiman.manager.api.beans.idm.RoleBean)2 RoleMembershipBean (io.apiman.manager.api.beans.idm.RoleMembershipBean)2 UpdateUserBean (io.apiman.manager.api.beans.idm.UpdateUserBean)2 MemberBean (io.apiman.manager.api.beans.members.MemberBean)2 MemberRoleBean (io.apiman.manager.api.beans.members.MemberRoleBean)2 Streams (com.google.common.collect.Streams)1 ApimanLoggerFactory (io.apiman.common.logging.ApimanLoggerFactory)1 IApimanLogger (io.apiman.common.logging.IApimanLogger)1 Api (io.apiman.gateway.engine.beans.Api)1 Client (io.apiman.gateway.engine.beans.Client)1 Contract (io.apiman.gateway.engine.beans.Contract)1 Policy (io.apiman.gateway.engine.beans.Policy)1 PublishingException (io.apiman.gateway.engine.beans.exceptions.PublishingException)1 ContractActionDto (io.apiman.manager.api.beans.actions.ContractActionDto)1 ApiBean (io.apiman.manager.api.beans.apis.ApiBean)1 ApiGatewayBean (io.apiman.manager.api.beans.apis.ApiGatewayBean)1