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 76e3086c43..c3531ffeaf 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 @@ -26,7 +26,7 @@ public interface AppsmithRepository { Mono setUserPermissionsInObject(T obj); - Mono updateAndReturn(String id, BridgeUpdate updateObj, Optional permission); + Mono updateAndReturn(String id, BridgeUpdate updateObj, AclPermission 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 d0f941f911..3d3dab34a4 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 @@ -171,16 +171,15 @@ public abstract class BaseAppsmithRepositoryCEImpl { return builder.permission(permission).updateFirst(update); } - protected Mono> getCurrentUserPermissionGroupsIfRequired(Optional permission) { + protected Mono> getCurrentUserPermissionGroupsIfRequired(AclPermission permission) { return getCurrentUserPermissionGroupsIfRequired(permission, true); } protected Mono> getCurrentUserPermissionGroupsIfRequired( - Optional permission, boolean includeAnonymousUserPermissions) { - if (permission.isEmpty()) { - return Mono.just(Set.of()); - } - return getCurrentUserPermissionGroups(includeAnonymousUserPermissions); + AclPermission permission, boolean includeAnonymousUserPermissions) { + return permission == null + ? Mono.just(Set.of()) + : getCurrentUserPermissionGroups(includeAnonymousUserPermissions); } public Mono> getCurrentUserPermissionGroups() { @@ -357,7 +356,7 @@ public abstract class BaseAppsmithRepositoryCEImpl { } return getCurrentUserPermissionGroupsIfRequired( - Optional.ofNullable(params.getPermission()), params.isIncludeAnonymousUserPermissions()) + params.getPermission(), params.isIncludeAnonymousUserPermissions()) .defaultIfEmpty(Collections.emptySet()) .map(params::permissionGroups) .then(); @@ -460,18 +459,18 @@ public abstract class BaseAppsmithRepositoryCEImpl { * * @see FindAndModifyOptions */ - public Mono updateAndReturn(String id, BridgeUpdate updateObj, Optional permission) { + public Mono updateAndReturn(String id, BridgeUpdate updateObj, AclPermission permission) { Query query = new Query(Criteria.where("id").is(id)); FindAndModifyOptions findAndModifyOptions = FindAndModifyOptions.options().returnNew(Boolean.TRUE); - if (permission.isEmpty()) { + if (permission == null) { return mongoOperations.findAndModify(query, updateObj, findAndModifyOptions, this.genericDomain); } return getCurrentUserPermissionGroupsIfRequired(permission, true).flatMap(permissionGroups -> { - query.addCriteria(new Criteria().andOperator(notDeleted(), userAcl(permissionGroups, permission.get()))); + query.addCriteria(new Criteria().andOperator(notDeleted(), userAcl(permissionGroups, permission))); return mongoOperations.findAndModify(query, updateObj, findAndModifyOptions, this.genericDomain); }); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java index c1a8957b39..e2e432661e 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java @@ -346,8 +346,7 @@ public class CustomNewActionRepositoryCEImpl extends BaseAppsmithRepositoryImpl< protected Mono copyUnpublishedActionToPublishedAction( BridgeQuery criteria, AclPermission permission) { - Mono> permissionGroupsMono = - getCurrentUserPermissionGroupsIfRequired(Optional.ofNullable(permission)); + Mono> permissionGroupsMono = getCurrentUserPermissionGroupsIfRequired(permission); return permissionGroupsMono .flatMapMany(permissionGroups -> { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewPageRepositoryCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewPageRepositoryCEImpl.java index 5ae6802aec..48e15554d0 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewPageRepositoryCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewPageRepositoryCEImpl.java @@ -218,8 +218,7 @@ public class CustomNewPageRepositoryCEImpl extends BaseAppsmithRepositoryImpl publishPages(Collection pageIds, AclPermission permission) { Criteria applicationIdCriteria = where(NewPage.Fields.id).in(pageIds); - Mono> permissionGroupsMono = - getCurrentUserPermissionGroupsIfRequired(Optional.ofNullable(permission)); + Mono> permissionGroupsMono = getCurrentUserPermissionGroupsIfRequired(permission); return permissionGroupsMono.flatMap(permissionGroups -> { return Mono.fromCallable(() -> { diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/services/ce/TenantServiceCETest.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/services/ce/TenantServiceCETest.java index 758d64cf7f..05a02669c5 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/services/ce/TenantServiceCETest.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/services/ce/TenantServiceCETest.java @@ -35,7 +35,6 @@ import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.UUID; import static com.appsmith.external.enums.FeatureFlagEnum.TENANT_TEST_FEATURE; @@ -90,8 +89,7 @@ class TenantServiceCETest { originalTenantConfiguration = tenant.getTenantConfiguration(); tenantRepository - .updateAndReturn( - tenant.getId(), Bridge.update().set(Tenant.Fields.tenantConfiguration, null), Optional.empty()) + .updateAndReturn(tenant.getId(), Bridge.update().set(Tenant.Fields.tenantConfiguration, null), null) .block(); // Make api_user super-user to test tenant admin functionality