package com.mossle.auth.component; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import com.mossle.api.tenant.TenantConnector; import com.mossle.api.tenant.TenantDTO; import com.mossle.auth.persistence.domain.Role; import com.mossle.auth.persistence.domain.UserStatus; import com.mossle.auth.support.UserStatusDTO; import org.springframework.stereotype.Component; @Component public class UserStatusConverter { private TenantConnector tenantConnector; public UserStatusDTO createUserStatusDto(UserStatus userStatus, String userRepoRef, String tenantId) { UserStatusDTO userStatusDto = new UserStatusDTO(); userStatusDto.setId(userStatus.getId()); userStatusDto.setUsername(userStatus.getUsername()); userStatusDto.setEnabled(Integer.valueOf(1).equals( userStatus.getStatus())); userStatusDto.setRef(userStatus.getRef()); StringBuilder buff = new StringBuilder(); for (Role role : userStatus.getRoles()) { if (tenantId.equals(role.getTenantId())) { buff.append(role.getName()).append(","); } else { TenantDTO tenantDto = tenantConnector.findById(role .getTenantId()); buff.append(role.getName()).append("(") .append(tenantDto.getName()).append("),"); } } if (buff.length() > 0) { buff.deleteCharAt(buff.length() - 1); } userStatusDto.setAuthorities(buff.toString()); return userStatusDto; } public List<UserStatusDTO> createUserStatusDtos( List<UserStatus> userStatuses, String userRepoRef, String tenantId) { List<UserStatusDTO> userStatusDtos = new ArrayList<UserStatusDTO>(); for (UserStatus userStatus : userStatuses) { userStatusDtos.add(createUserStatusDto(userStatus, userRepoRef, tenantId)); } return userStatusDtos; } @Resource public void setTenantConnector(TenantConnector tenantConnector) { this.tenantConnector = tenantConnector; } }