fix: Do not return composed action collections after refactor (#35350)

This commit is contained in:
Nidhi 2024-08-02 12:22:03 +05:30 committed by GitHub
parent e168219750
commit d06477afaf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 31 additions and 13 deletions

View File

@ -40,7 +40,8 @@ public interface ActionCollectionServiceCE extends CrudService<ActionCollection,
Mono<ActionCollectionDTO> splitValidActionsByViewMode(
ActionCollectionDTO actionCollectionDTO, List<ActionDTO> actionsList, Boolean viewMode);
Flux<ActionCollectionDTO> getActionCollectionsByViewMode(MultiValueMap<String, String> params, Boolean viewMode);
Flux<ActionCollectionDTO> getNonComposedActionCollectionsByViewMode(
MultiValueMap<String, String> params, Boolean viewMode);
Mono<ActionCollectionDTO> update(String id, ActionCollectionDTO actionCollectionDTO);

View File

@ -130,7 +130,7 @@ public class ActionCollectionServiceCEImpl extends BaseService<ActionCollectionR
@Override
public Flux<ActionCollectionDTO> getPopulatedActionCollectionsByViewMode(
MultiValueMap<String, String> params, Boolean viewMode) {
return this.getActionCollectionsByViewMode(params, viewMode)
return this.getNonComposedActionCollectionsByViewMode(params, viewMode)
.flatMap(actionCollectionDTO -> this.populateActionCollectionByViewMode(actionCollectionDTO, viewMode));
}
@ -187,7 +187,7 @@ public class ActionCollectionServiceCEImpl extends BaseService<ActionCollectionR
return applicationService
.findBranchedApplicationId(branchName, applicationId, applicationPermission.getReadPermission())
.flatMapMany(branchedApplicationId -> repository
.findByApplicationIdAndViewMode(
.findNonComposedByApplicationIdAndViewMode(
branchedApplicationId, true, actionPermission.getExecutePermission())
.flatMap(this::generateActionCollectionViewDTO));
}
@ -195,7 +195,8 @@ public class ActionCollectionServiceCEImpl extends BaseService<ActionCollectionR
@Override
public Flux<ActionCollectionViewDTO> getActionCollectionsForViewMode(String branchedApplicationId) {
return repository
.findByApplicationIdAndViewMode(branchedApplicationId, true, actionPermission.getExecutePermission())
.findNonComposedByApplicationIdAndViewMode(
branchedApplicationId, true, actionPermission.getExecutePermission())
.flatMap(this::generateActionCollectionViewDTO);
}
@ -235,16 +236,16 @@ public class ActionCollectionServiceCEImpl extends BaseService<ActionCollectionR
}
@Override
public Flux<ActionCollectionDTO> getActionCollectionsByViewMode(
public Flux<ActionCollectionDTO> getNonComposedActionCollectionsByViewMode(
MultiValueMap<String, String> params, Boolean viewMode) {
if (params == null || viewMode == null) {
return Flux.empty();
}
return getActionCollectionsFromRepoByViewMode(params, viewMode)
return getNonComposedActionCollectionsFromRepoByViewMode(params, viewMode)
.flatMap(actionCollection -> generateActionCollectionByViewMode(actionCollection, viewMode));
}
protected Flux<ActionCollection> getActionCollectionsFromRepoByViewMode(
protected Flux<ActionCollection> getNonComposedActionCollectionsFromRepoByViewMode(
MultiValueMap<String, String> params, Boolean viewMode) {
if (params.getFirst(FieldName.APPLICATION_ID) != null) {
// Fetch unpublished pages because GET actions is only called during edit mode. For view mode, different
@ -254,7 +255,7 @@ public class ActionCollectionServiceCEImpl extends BaseService<ActionCollectionR
params.getFirst(FieldName.BRANCH_NAME),
params.getFirst(FieldName.APPLICATION_ID),
applicationPermission.getReadPermission())
.flatMapMany(childApplicationId -> repository.findByApplicationIdAndViewMode(
.flatMapMany(childApplicationId -> repository.findNonComposedByApplicationIdAndViewMode(
childApplicationId, viewMode, actionPermission.getReadPermission()));
}
String pageId = null;
@ -262,7 +263,7 @@ public class ActionCollectionServiceCEImpl extends BaseService<ActionCollectionR
if (params.getFirst(FieldName.PAGE_ID) != null) {
pageId = params.getFirst(FieldName.PAGE_ID);
}
return repository.findByPageIdAndViewMode(pageId, viewMode, actionPermission.getReadPermission());
return repository.findAllNonComposedByPageIdAndViewMode(pageId, viewMode, actionPermission.getReadPermission());
}
@Override

View File

@ -18,7 +18,7 @@ public interface CustomActionCollectionRepositoryCE extends AppsmithRepository<A
Flux<ActionCollection> findByApplicationId(
String applicationId, Optional<AclPermission> aclPermission, Optional<Sort> sort);
Flux<ActionCollection> findByApplicationIdAndViewMode(
Flux<ActionCollection> findNonComposedByApplicationIdAndViewMode(
String applicationId, boolean viewMode, AclPermission aclPermission);
Flux<ActionCollection> findByPageId(String pageId, AclPermission permission);
@ -39,4 +39,7 @@ public interface CustomActionCollectionRepositoryCE extends AppsmithRepository<A
String contextId, CreatorContextType contextType, AclPermission permission);
Flux<ActionCollection> findByPageIdAndViewMode(String pageId, boolean viewMode, AclPermission permission);
Flux<ActionCollection> findAllNonComposedByPageIdAndViewMode(
String pageId, boolean viewMode, AclPermission permission);
}

View File

@ -60,7 +60,7 @@ public class CustomActionCollectionRepositoryCEImpl extends BaseAppsmithReposito
}
@Override
public Flux<ActionCollection> findByApplicationIdAndViewMode(
public Flux<ActionCollection> findNonComposedByApplicationIdAndViewMode(
String applicationId, boolean viewMode, AclPermission aclPermission) {
BridgeQuery<ActionCollection> bridgeQuery =
getBridgeQueryForFindByApplicationIdAndViewMode(applicationId, viewMode);
@ -138,6 +138,13 @@ public class CustomActionCollectionRepositoryCEImpl extends BaseAppsmithReposito
@Override
public Flux<ActionCollection> findByPageIdAndViewMode(String pageId, boolean viewMode, AclPermission permission) {
final BridgeQuery<ActionCollection> query = getActionCollectionsByPageIdAndViewModeQuery(pageId, viewMode);
return queryBuilder().criteria(query).permission(permission).all();
}
protected BridgeQuery<ActionCollection> getActionCollectionsByPageIdAndViewModeQuery(
String pageId, boolean viewMode) {
final BridgeQuery<ActionCollection> query = Bridge.query();
if (Boolean.TRUE.equals(viewMode)) {
@ -153,7 +160,12 @@ public class CustomActionCollectionRepositoryCEImpl extends BaseAppsmithReposito
// would exist. To handle this, only fetch non-deleted actions
query.isNull(ActionCollection.Fields.unpublishedCollection_deletedAt);
}
return query;
}
return queryBuilder().criteria(query).permission(permission).all();
@Override
public Flux<ActionCollection> findAllNonComposedByPageIdAndViewMode(
String pageId, boolean viewMode, AclPermission permission) {
return this.findByPageIdAndViewMode(pageId, viewMode, permission);
}
}

View File

@ -281,7 +281,8 @@ public class RefactoringServiceTest {
mockActionCollectionDTO.setName("testCollection");
mockActionCollectionDTO.setActions(List.of(firstAction, secondAction));
Mockito.when(actionCollectionService.getActionCollectionsByViewMode(Mockito.any(), Mockito.anyBoolean()))
Mockito.when(actionCollectionService.getNonComposedActionCollectionsByViewMode(
Mockito.any(), Mockito.anyBoolean()))
.thenReturn(Flux.just(mockActionCollectionDTO));
Mono<Boolean> nameAllowedMono = refactoringService.isNameAllowed(