Skip to content

Commit dfc0513

Browse files
committed
changed app data for view to remove test object in app data for production
1 parent 6f014ae commit dfc0513

File tree

2 files changed

+42
-6
lines changed

2 files changed

+42
-6
lines changed

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

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@
1515
import static org.lowcoder.sdk.util.ExceptionUtils.ofError;
1616

1717
import java.time.Instant;
18-
import java.util.HashSet;
19-
import java.util.List;
20-
import java.util.Map;
21-
import java.util.Set;
18+
import java.util.*;
2219
import java.util.stream.Collectors;
2320

2421
import javax.annotation.Nonnull;
@@ -366,8 +363,8 @@ public Mono<ApplicationView> publish(String applicationId) {
366363
}
367364

368365
public Mono<Boolean> grantPermission(String applicationId,
369-
Set<String> userIds,
370-
Set<String> groupIds, ResourceRole role) {
366+
Set<String> userIds,
367+
Set<String> groupIds, ResourceRole role) {
371368
if (userIds.isEmpty() && groupIds.isEmpty()) {
372369
return Mono.just(true);
373370
}
@@ -502,11 +499,48 @@ private Map<String, Object> sanitizeDsl(Map<String, Object> applicationDsl) {
502499
if (applicationDsl.get("queries") instanceof List<?> queries) {
503500
List<Map<String, Object>> list = queries.stream().map(this::doSanitizeQuery).toList();
504501
applicationDsl.put("queries", list);
502+
removeTestVariablesFromProductionView(applicationDsl);
505503
return applicationDsl;
506504
}
505+
removeTestVariablesFromProductionView(applicationDsl);
507506
return applicationDsl;
508507
}
509508

509+
private void removeTestVariablesFromProductionView(Map<String, Object> applicationDsl) {
510+
// Remove "test" object if it exists within "applicationDSL"
511+
if (applicationDsl.containsKey("ui")) {
512+
Map<String, Object> dataObject = (Map<String, Object>) applicationDsl.get("ui");
513+
if (dataObject.containsKey("comp")) {
514+
Map<String, Object> applicationDSL = (Map<String, Object>) dataObject.get("comp");
515+
doRemoveTestVariablesFromProductionView(applicationDSL);
516+
}
517+
}
518+
}
519+
520+
private void doRemoveTestVariablesFromProductionView(Map<String, Object> map) {
521+
if (map.containsKey("io")) {
522+
Map<String, Object> io = (Map<String, Object>) map.get("io");
523+
if (io.containsKey("inputs")) {
524+
List<Map<String, Object>> inputs = (List<Map<String, Object>>) io.get("inputs");
525+
for (Map<String, Object> inputMap : inputs) {
526+
if (inputMap.containsKey("test")) {
527+
inputMap.remove("test");
528+
}
529+
}
530+
}
531+
532+
if (io.containsKey("outputs")) {
533+
List<Map<String, Object>> outputs = (List<Map<String, Object>>) io.get("outputs");
534+
for (Map<String, Object> inputMap : outputs) {
535+
if (inputMap.containsKey("test")) {
536+
inputMap.remove("test");
537+
}
538+
}
539+
}
540+
}
541+
}
542+
543+
510544
@SuppressWarnings("unchecked")
511545
private Map<String, Object> doSanitizeQuery(Object query) {
512546
if (!(query instanceof Map)) {

server/api-service/lowcoder-server/src/main/resources/application-lowcoder.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ common:
3535
product: lowcoder
3636
domain:
3737
default-value: skipCheck
38+
js-executor:
39+
host: ${LOWCODER_NODE_SERVICE_URL:http://127.0.0.1:6060}
3840
encrypt:
3941
password: lowcoder
4042
salt: lowcoder

0 commit comments

Comments
 (0)