diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java index 5e2f4fbb0..8da89a847 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java @@ -418,7 +418,7 @@ protected Map getUserDetailExtra(User user, String orgId) { return Optional.ofNullable(user.getOrgTransformedUserInfo()) .map(orgTransformedUserInfo -> orgTransformedUserInfo.get(orgId)) .map(TransformedUserInfo::extra) - .orElse(convertConnections(user.getConnections())); + .orElse(convertConnections(user.getConnections().stream().filter(c -> c.getAuthId().equals(user.getActiveAuthId())).collect(Collectors.toSet()))); } protected Mono>> buildUserDetailGroups(String userId, OrgMember orgMember, boolean withoutDynamicGroups, @@ -443,7 +443,7 @@ protected Map convertConnections(Set connections) { return connections.stream() .filter(connection -> !AuthSourceConstants.EMAIL.equals(connection.getSource()) && !AuthSourceConstants.PHONE.equals(connection.getSource())) - .collect(Collectors.toMap(Connection::getAuthId, Connection::getRawUserInfo)); + .collect(Collectors.toMap(Connection::getSource, Connection::getRawUserInfo)); } protected String convertEmail(Set connections) { diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java index c1d83af59..6a8bb62ea 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java @@ -30,6 +30,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.Comparator; import java.util.List; import static org.lowcoder.api.util.Pagination.fluxToPageResponseView; @@ -59,15 +60,21 @@ public class OrganizationController implements OrganizationEndpoints public Mono> getOrganizationByUser(@PathVariable String email, @RequestParam(required = false, defaultValue = "1") Integer pageNum, @RequestParam(required = false, defaultValue = "0") Integer pageSize) { - Flux flux; + Flux flux; if (commonConfig.getWorkspace().getMode() == WorkspaceMode.SAAS) { flux = userService.findByEmailDeep(email).flux().flatMap(user -> orgMemberService.getAllActiveOrgs(user.getId())) .flatMap(orgMember -> organizationService.getById(orgMember.getOrgId())) .map(OrgView::new).cache(); } else { - flux = organizationService.getOrganizationInEnterpriseMode().flux().cache(); + flux = organizationService.getOrganizationInEnterpriseMode().flux().map(OrgView::new).cache(); } - return fluxToPageResponseView(pageNum, pageSize, flux); + var newflux = flux.sort((OrgView o1, OrgView o2) -> { + if (o1.getOrgName() == null || o2.getOrgName() == null) { + return 0; + } + return o1.getOrgName().compareTo(o2.getOrgName()); + }); + return fluxToPageResponseView(pageNum, pageSize, newflux); } @Override