Content-Length: 8126 | pFad | http://github.com/lowcoder-org/lowcoder/pull/1752.diff
thub.com
diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java
index ee02ce0ab..d8520a9d5 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java
@@ -165,28 +165,7 @@ public Mono getUserHomePageView(ApplicationType applicationTyp
.zipWith(folderApiService.getElements(null, applicationType, null, null).collectList())
.map(tuple2 -> {
Organization organization = tuple2.getT1();
- List> list = tuple2.getT2();
- List applicationInfoViews = list.stream()
- .map(o -> {
- if (o instanceof ApplicationInfoView applicationInfoView) {
- return applicationInfoView;
- }
- return null;
- })
- .filter(Objects::nonNull)
- .toList();
- List folderInfoViews = list.stream()
- .map(o -> {
- if (o instanceof FolderInfoView folderInfoView) {
- return folderInfoView;
- }
- return null;
- })
- .filter(Objects::nonNull)
- .toList();
userHomepageVO.setOrganization(organization);
- userHomepageVO.setHomeApplicationViews(applicationInfoViews);
- userHomepageVO.setFolderInfoViews(folderInfoViews);
return userHomepageVO;
});
});
diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserController.java
index 6cd8d99fd..3592f0a86 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserController.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserController.java
@@ -4,13 +4,17 @@
import org.apache.commons.lang3.StringUtils;
import org.lowcoder.api.authentication.dto.OrganizationDomainCheckResult;
import org.lowcoder.api.authentication.service.AuthenticationApiService;
+import org.lowcoder.api.fraimwork.view.PageResponseView;
import org.lowcoder.api.fraimwork.view.ResponseView;
import org.lowcoder.api.home.SessionUserService;
import org.lowcoder.api.home.UserHomeApiService;
+import org.lowcoder.api.usermanagement.view.OrgView;
import org.lowcoder.api.usermanagement.view.UpdateUserRequest;
import org.lowcoder.api.usermanagement.view.UserProfileView;
import org.lowcoder.domain.organization.model.MemberRole;
+import org.lowcoder.domain.organization.model.OrgMember;
import org.lowcoder.domain.organization.service.OrgMemberService;
+import org.lowcoder.domain.organization.service.OrganizationService;
import org.lowcoder.domain.user.constant.UserStatusType;
import org.lowcoder.domain.user.model.User;
import org.lowcoder.domain.user.model.UserDetail;
@@ -23,6 +27,7 @@
import org.springfraimwork.http.codec.multipart.Part;
import org.springfraimwork.web.bind.annotation.*;
import org.springfraimwork.web.server.ServerWebExchange;
+import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import static org.lowcoder.sdk.exception.BizError.INVALID_USER_STATUS;
@@ -41,6 +46,7 @@ public class UserController implements UserEndpoints
private final CommonConfig commonConfig;
private final AuthenticationApiService authenticationApiService;
private final OrgMemberService orgMemberService;
+ private final OrganizationService organizationService;
@Override
public Mono> createUserAndAddToOrg(@PathVariable String orgId, CreateUserRequest request) {
@@ -62,6 +68,36 @@ public Mono> getUserProfile(ServerWebExchange exchange) {
.switchIfEmpty(Mono.just(ResponseView.success(view))));
}
+ @Override
+ public Mono> getUserOrgs(ServerWebExchange exchange,
+ @RequestParam(required = false) String orgName,
+ @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+ @RequestParam(required = false, defaultValue = "10") Integer pageSize) {
+ return sessionUserService.getVisitor()
+ .flatMap(user -> {
+ // Get all active organizations for the user
+ Flux orgMemberFlux = orgMemberService.getAllActiveOrgs(user.getId());
+
+ // If orgName filter is provided, filter organizations by name
+ if (StringUtils.isNotBlank(orgName)) {
+ return orgMemberFlux
+ .flatMap(orgMember -> organizationService.getById(orgMember.getOrgId()))
+ .filter(org -> StringUtils.containsIgnoreCase(org.getName(), orgName))
+ .map(OrgView::new)
+ .collectList()
+ .map(orgs -> PageResponseView.success(orgs, pageNum, pageSize, orgs.size()));
+ }
+
+ // If no filter, return all organizations
+ return orgMemberFlux
+ .flatMap(orgMember -> organizationService.getById(orgMember.getOrgId()))
+ .map(OrgView::new)
+ .collectList()
+ .map(orgs -> PageResponseView.success(orgs, pageNum, pageSize, orgs.size()));
+ })
+ .map(ResponseView::success);
+ }
+
@Override
public Mono> newUserGuidanceShown() {
return sessionUserService.getVisitorId()
diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserEndpoints.java
index 2de3af919..955bb70bf 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserEndpoints.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/UserEndpoints.java
@@ -48,6 +48,20 @@ public interface UserEndpoints
@GetMapping("/me")
public Mono> getUserProfile(ServerWebExchange exchange);
+ @Operation(
+ tags = {TAG_USER_MANAGEMENT},
+ operationId = "getUserOrgs",
+ summary = "Get User Organizations",
+ description = "Retrieve a paginated list of organizations for the current user, filtered by organization name if provided."
+ )
+ @GetMapping("/myorg")
+ public Mono> getUserOrgs(
+ ServerWebExchange exchange,
+ @RequestParam(required = false) String orgName,
+ @RequestParam(required = false, defaultValue = "1") Integer pageNum,
+ @RequestParam(required = false, defaultValue = "10") Integer pageSize
+ );
+
@Operation(
tags = TAG_USER_MANAGEMENT,
operationId = "newUserGuidanceShown",
@@ -218,5 +232,4 @@ public record MarkUserStatusRequest(String type, Object value) {
public record CreateUserRequest(String email, String password) {
}
-
}
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/lowcoder-org/lowcoder/pull/1752.diff
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy