diff --git a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/birelation/BiRelationServiceImpl.java b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/birelation/BiRelationServiceImpl.java index 17eb9db5a7..ad98de0f95 100644 --- a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/birelation/BiRelationServiceImpl.java +++ b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/birelation/BiRelationServiceImpl.java @@ -132,6 +132,7 @@ public Mono removeAllBiRelations(BiRelationBizType bizType, String sour Query query = new Query(); query.addCriteria(where(BIZ_TYPE).is(bizType)); query.addCriteria(where(SOURCE_ID).is(sourceId)); + query.addCriteria(where(RELATION).is("super_admin").not()); return mongoUpsertHelper.remove(query, BiRelation.class); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java index c267e3ca9a..fdb40cc04e 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java @@ -34,7 +34,7 @@ public interface ApplicationApiService { Mono updateUserApplicationLastViewTime(String applicationId); - Mono update(String applicationId, Application application); + Mono update(String applicationId, Application application, Boolean updateStatus); Mono publish(String applicationId, ApplicationPublishRequest applicationPublishRequest); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java index 1345d2d2b7..3ed05375f3 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java @@ -346,23 +346,24 @@ public Mono updateUserApplicationLastViewTime(String applicationId) { } @Override - public Mono update(String applicationId, Application application) { - return checkApplicationStatus(applicationId, NORMAL) + public Mono update(String applicationId, Application application, Boolean updateStatus) { + return Boolean.TRUE.equals(updateStatus) ? Mono.empty() : checkApplicationStatus(applicationId, NORMAL) .then(sessionUserService.getVisitorId()) .flatMap(userId -> resourcePermissionService.checkAndReturnMaxPermission(userId, applicationId, EDIT_APPLICATIONS)) .delayUntil(__ -> checkDatasourcePermissions(application)) - .flatMap(permission -> doUpdateApplication(applicationId, application) + .flatMap(permission -> doUpdateApplication(applicationId, application, updateStatus) .flatMap(applicationUpdated -> buildView(applicationUpdated, permission.getResourceRole().getValue()).map(appInfoView -> ApplicationView.builder() .applicationInfoView(appInfoView) .applicationDSL(applicationUpdated.getEditingApplicationDSL()) .build()))); } - private Mono doUpdateApplication(String applicationId, Application application) { + private Mono doUpdateApplication(String applicationId, Application application, Boolean updateStatus) { Application applicationUpdate = Application.builder() .editingApplicationDSL(application.getEditingApplicationDSLOrNull()) .name(application.getName()) + .applicationStatus(Boolean.TRUE.equals(updateStatus) ? application.getApplicationStatus() : null) .build(); return applicationService.updateById(applicationId, applicationUpdate) .then(applicationService.findById(applicationId)); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index 2ae5ea03ef..d1c6402f00 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -123,7 +123,7 @@ public Mono> update(@PathVariable String applicati @RequestBody Application newApplication, @RequestParam(required = false) Boolean updateStatus) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> - applicationApiService.update(appId, newApplication) + applicationApiService.update(appId, newApplication, updateStatus) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_UPDATE)) .map(ResponseView::success)); } diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java index e35bc8258e..3ff202b6d5 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java @@ -116,7 +116,7 @@ public void testUpdateApplicationFailedDueToLackOfDatasourcePermissions() { .editingApplicationDSL(applicationView.getApplicationDSL()) .name("app03") .build(); - return applicationApiService.update(applicationView.getApplicationInfoView().getApplicationId(), application); + return applicationApiService.update(applicationView.getApplicationInfoView().getApplicationId(), application, false); }); StepVerifier.create(applicationViewMono) diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java index 1b7ad7a553..1069447772 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java @@ -169,7 +169,7 @@ public void testPublishApplication() { // update applicationIdMono = applicationIdMono - .delayUntil(id -> applicationApiService.update(id, Application.builder().editingApplicationDSL(Map.of("comp", "table")).build())).cache(); + .delayUntil(id -> applicationApiService.update(id, Application.builder().editingApplicationDSL(Map.of("comp", "table")).build(), false)).cache(); // edit dsl after publish StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id, false))) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy