Skip to content

Commit acbef3c

Browse files
committed
Add validation between ptm and agency apis
1 parent 570d184 commit acbef3c

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java

+16-2
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,19 @@ private Mono<Void> checkApplicationStatus(Application application, ApplicationSt
248248
return Mono.error(new BizException(BizError.UNSUPPORTED_OPERATION, "BAD_REQUEST"));
249249
}
250250

251+
private Mono<Void> checkApplicationViewRequest(Application application, ApplicationEndpoints.ApplicationRequestType expected) {
252+
if (expected == ApplicationEndpoints.ApplicationRequestType.PUBLIC_TO_ALL && application.isPublicToAll()) {
253+
return Mono.empty();
254+
}
255+
if (expected == ApplicationEndpoints.ApplicationRequestType.PUBLIC_TO_MARKETPLACE && application.isPublicToMarketplace()) {
256+
return Mono.empty();
257+
}
258+
if (expected == ApplicationEndpoints.ApplicationRequestType.AGENCY_PROFILE && application.agencyProfile()) {
259+
return Mono.empty();
260+
}
261+
return Mono.error(new BizException(BizError.UNSUPPORTED_OPERATION, "BAD_REQUEST"));
262+
}
263+
251264
private Mono<Boolean> updateApplicationStatus(String applicationId, ApplicationStatus applicationStatus) {
252265
return checkCurrentUserApplicationPermission(applicationId, MANAGE_APPLICATIONS)
253266
.then(Mono.defer(() -> {
@@ -280,10 +293,11 @@ public Mono<ApplicationView> getEditingApplication(String applicationId) {
280293
});
281294
}
282295

283-
public Mono<ApplicationView> getPublishedApplication(String applicationId) {
296+
public Mono<ApplicationView> getPublishedApplication(String applicationId, ApplicationEndpoints.ApplicationRequestType requestType) {
284297
return checkPermissionWithReadableErrorMsg(applicationId, READ_APPLICATIONS)
285298
.zipWhen(permission -> applicationService.findById(applicationId)
286-
.delayUntil(application -> checkApplicationStatus(application, NORMAL)))
299+
.delayUntil(application -> checkApplicationStatus(application, NORMAL))
300+
.delayUntil(application -> checkApplicationViewRequest(application, requestType)))
287301
.zipWhen(tuple -> applicationService.getAllDependentModulesFromApplication(tuple.getT2(), true), TupleUtils::merge)
288302
.zipWhen(tuple -> organizationService.getOrgCommonSettings(tuple.getT2().getOrganizationId()), TupleUtils::merge)
289303
.zipWith(getTemplateIdFromApplicationId(applicationId), TupleUtils::merge)

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -91,23 +91,23 @@ public Mono<ResponseView<ApplicationView>> getEditingApplication(@PathVariable S
9191

9292
@Override
9393
public Mono<ResponseView<ApplicationView>> getPublishedApplication(@PathVariable String applicationId) {
94-
return applicationApiService.getPublishedApplication(applicationId)
94+
return applicationApiService.getPublishedApplication(applicationId, ApplicationRequestType.PUBLIC_TO_ALL)
9595
.delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(applicationId))
9696
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, VIEW))
9797
.map(ResponseView::success);
9898
}
9999

100100
@Override
101101
public Mono<ResponseView<ApplicationView>> getPublishedMarketPlaceApplication(@PathVariable String applicationId) {
102-
return applicationApiService.getPublishedApplication(applicationId)
102+
return applicationApiService.getPublishedApplication(applicationId, ApplicationRequestType.PUBLIC_TO_MARKETPLACE)
103103
.delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(applicationId))
104104
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, VIEW))
105105
.map(ResponseView::success);
106106
}
107107

108108
@Override
109109
public Mono<ResponseView<ApplicationView>> getAgencyProfileApplication(@PathVariable String applicationId) {
110-
return applicationApiService.getPublishedApplication(applicationId)
110+
return applicationApiService.getPublishedApplication(applicationId, ApplicationRequestType.AGENCY_PROFILE)
111111
.delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(applicationId))
112112
.delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, VIEW))
113113
.map(ResponseView::success);

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java

+6
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,12 @@ public Boolean agencyProfile() {
284284
}
285285
}
286286

287+
public enum ApplicationRequestType {
288+
PUBLIC_TO_ALL,
289+
PUBLIC_TO_MARKETPLACE,
290+
AGENCY_PROFILE,
291+
}
292+
287293
public record UpdatePermissionRequest(String role) {
288294
}
289295

0 commit comments

Comments
 (0)