diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserService.java index 19d1fde58..b7dc9326c 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserService.java @@ -27,6 +27,7 @@ public interface UserService { Mono> getByIds(Collection ids); Mono findBySourceAndId(String connectionSource, String connectionSourceUuid); + Mono findByEmailDeep(String email); Mono saveProfilePhoto(Part filePart, User t2); 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 4ba0e9cd7..c1559b42d 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 @@ -112,6 +112,7 @@ public Mono findByName(String rawUuid) { return repository.findByName(rawUuid); } + @Override public Mono findByEmailDeep(String email) { if(StringUtils.isEmpty(email)) return Mono.empty(); return repository.findByEmailOrConnections_Email(email, email).next(); 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 846b2483c..562d072f9 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 @@ -17,6 +17,7 @@ import org.lowcoder.domain.organization.service.OrganizationService; import org.lowcoder.domain.plugin.DatasourceMetaInfo; import org.lowcoder.domain.plugin.service.DatasourceMetaInfoService; +import org.lowcoder.domain.user.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.codec.multipart.Part; import org.springframework.web.bind.annotation.*; @@ -41,10 +42,12 @@ public class OrganizationController implements OrganizationEndpoints private OrgMemberService orgMemberService; @Autowired private OrganizationService organizationService; + @Autowired + private UserService userService; @Override - public Mono>> getOrganizationByUser(@PathVariable String userId) { - return orgMemberService.getAllActiveOrgs(userId) + public Mono>> getOrganizationByUser(@PathVariable String email) { + return userService.findByEmailDeep(email).flux().flatMap(user -> orgMemberService.getAllActiveOrgs(user.getId())) .flatMap(orgMember -> organizationService.getById(orgMember.getOrgId())) .map(OrgView::new) .collectList() diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java index a2c3dac6c..5ceaa5bd4 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java @@ -43,8 +43,8 @@ public interface OrganizationEndpoints summary = "Get a list of specified user's organization", description = "Get a list of specified user's organization" ) - @GetMapping("/byuser/{userId}") - public Mono>> getOrganizationByUser(@PathVariable String userId); + @GetMapping("/byuser/{email}") + public Mono>> getOrganizationByUser(@PathVariable String email); @Operation( tags = TAG_ORGANIZATION_MANAGEMENT,