diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/AppsmithRepository.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/AppsmithRepository.java index 118deb7766..76e3086c43 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/AppsmithRepository.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/AppsmithRepository.java @@ -2,8 +2,8 @@ package com.appsmith.server.repositories; import com.appsmith.external.models.BaseDomain; import com.appsmith.server.acl.AclPermission; +import com.appsmith.server.helpers.ce.bridge.BridgeUpdate; import com.appsmith.server.repositories.ce.params.QueryAllParams; -import org.springframework.data.mongodb.core.query.UpdateDefinition; import reactor.core.publisher.Mono; import java.util.List; @@ -18,13 +18,15 @@ public interface AppsmithRepository { Mono updateById(String id, T resource, AclPermission permission); + Mono updateByIdWithoutPermissionCheck(String id, BridgeUpdate update); + QueryAllParams queryBuilder(); Mono setUserPermissionsInObject(T obj, Set permissionGroups); Mono setUserPermissionsInObject(T obj); - Mono updateAndReturn(String id, UpdateDefinition updateObj, Optional permission); + Mono updateAndReturn(String id, BridgeUpdate updateObj, Optional permission); /** * This method uses the mongodb bulk operation to save a list of new actions. When calling this method, please note diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/BaseAppsmithRepositoryCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/BaseAppsmithRepositoryCEImpl.java index f502683763..d0f941f911 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/BaseAppsmithRepositoryCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/BaseAppsmithRepositoryCEImpl.java @@ -9,6 +9,7 @@ import com.appsmith.server.exceptions.AppsmithError; import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.server.helpers.ce.bridge.Bridge; import com.appsmith.server.helpers.ce.bridge.BridgeQuery; +import com.appsmith.server.helpers.ce.bridge.BridgeUpdate; import com.appsmith.server.repositories.CacheableRepositoryHelper; import com.appsmith.server.repositories.ce.params.QueryAllParams; import com.mongodb.BasicDBObject; @@ -145,6 +146,10 @@ public abstract class BaseAppsmithRepositoryCEImpl { return queryBuilder().byId(id).permission(permission).updateFirstAndFind(updateObj); } + public Mono updateByIdWithoutPermissionCheck(@NonNull String id, BridgeUpdate update) { + return queryBuilder().byId(id).updateFirst(update); + } + public Mono updateFieldByDefaultIdAndBranchName( String defaultId, String defaultIdPath, @@ -455,7 +460,7 @@ public abstract class BaseAppsmithRepositoryCEImpl { * * @see FindAndModifyOptions */ - public Mono updateAndReturn(String id, UpdateDefinition updateObj, Optional permission) { + public Mono updateAndReturn(String id, BridgeUpdate updateObj, Optional permission) { Query query = new Query(Criteria.where("id").is(id)); FindAndModifyOptions findAndModifyOptions = diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomActionCollectionRepositoryCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomActionCollectionRepositoryCE.java index 152ed6f6aa..a246c399e6 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomActionCollectionRepositoryCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomActionCollectionRepositoryCE.java @@ -5,7 +5,6 @@ import com.appsmith.server.acl.AclPermission; import com.appsmith.server.domains.ActionCollection; import com.appsmith.server.repositories.AppsmithRepository; import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.core.query.UpdateDefinition; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -50,6 +49,4 @@ public interface CustomActionCollectionRepositoryCE extends AppsmithRepository findByPageIdAndViewMode(String pageId, boolean viewMode, AclPermission permission); - - Mono updateById(String id, UpdateDefinition updateObj); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomActionCollectionRepositoryCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomActionCollectionRepositoryCEImpl.java index b8f07dc5b5..5008d10865 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomActionCollectionRepositoryCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomActionCollectionRepositoryCEImpl.java @@ -7,14 +7,11 @@ import com.appsmith.server.acl.AclPermission; import com.appsmith.server.constants.FieldName; import com.appsmith.server.domains.ActionCollection; import com.appsmith.server.dtos.ActionCollectionDTO; -import com.appsmith.server.exceptions.AppsmithError; -import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.server.helpers.ce.bridge.Bridge; import com.appsmith.server.helpers.ce.bridge.BridgeQuery; import com.appsmith.server.repositories.BaseAppsmithRepositoryImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.core.query.UpdateDefinition; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -243,12 +240,4 @@ public class CustomActionCollectionRepositoryCEImpl extends BaseAppsmithReposito return queryBuilder().criteria(query).permission(permission).all(); } - - @Override - public Mono updateById(String id, UpdateDefinition updateObj) { - if (id == null) { - return Mono.error(new AppsmithException(AppsmithError.INVALID_PARAMETER, FieldName.ID)); - } - return queryBuilder().byId(id).updateFirst(updateObj); - } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/LayoutCollectionServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/LayoutCollectionServiceCEImpl.java index fac5568ad4..2d4a49bf40 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/LayoutCollectionServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/LayoutCollectionServiceCEImpl.java @@ -327,7 +327,7 @@ public class LayoutCollectionServiceCEImpl implements LayoutCollectionServiceCE updateObj.set(path, actionCollectionDTO.getBody()); - return actionCollectionRepository.updateById(dbActionCollection.getId(), updateObj); + return actionCollectionRepository.updateByIdWithoutPermissionCheck(dbActionCollection.getId(), updateObj); }); }