diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/DatabaseChangelog2.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/DatabaseChangelog2.java index e64c407760..24acdcdda6 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/DatabaseChangelog2.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/DatabaseChangelog2.java @@ -28,6 +28,7 @@ import com.appsmith.server.dtos.Permission; import com.appsmith.server.helpers.TextUtils; import com.appsmith.server.migrations.solutions.UpdateSuperUserMigrationHelper; import com.appsmith.server.repositories.CacheableRepositoryHelper; +import com.appsmith.server.repositories.PermissionGroupRepository; import com.appsmith.server.solutions.PolicySolution; import com.github.cloudyrock.mongock.ChangeLog; import com.github.cloudyrock.mongock.ChangeSet; @@ -446,14 +447,11 @@ public class DatabaseChangelog2 { /** * Changing the order of this function to 10000 so that it always gets executed at the end. * This ensures that any permission changes for super users happen once all other migrations are completed - * - * @param mongoTemplate - * @param cacheableRepositoryHelper */ @ChangeSet(order = "10000", id = "update-super-users", author = "", runAlways = true) public void updateSuperUsers( MongoTemplate mongoTemplate, - CacheableRepositoryHelper cacheableRepositoryHelper, + PermissionGroupRepository permissionGroupRepository, PolicySolution policySolution, PolicyGenerator policyGenerator) { // Read the admin emails from the environment and update the super users accordingly @@ -499,7 +497,7 @@ public class DatabaseChangelog2 { Set oldSuperUsers = instanceAdminPG.getAssignedToUserIds(); Set updatedUserIds = findSymmetricDiff(oldSuperUsers, userIds); - evictPermissionCacheForUsers(updatedUserIds, mongoTemplate, cacheableRepositoryHelper); + evictPermissionCacheForUsers(updatedUserIds, mongoTemplate, permissionGroupRepository); Update update = new Update().set(PermissionGroup.Fields.assignedToUserIds, userIds); mongoTemplate.updateFirst(permissionGroupQuery, update, PermissionGroup.class); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/MigrationHelperMethods.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/MigrationHelperMethods.java index 277a3ac576..51abd5c67c 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/MigrationHelperMethods.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/MigrationHelperMethods.java @@ -21,7 +21,7 @@ import com.appsmith.server.dtos.ApplicationJson; import com.appsmith.server.exceptions.AppsmithError; import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.server.helpers.CollectionUtils; -import com.appsmith.server.repositories.CacheableRepositoryHelper; +import com.appsmith.server.repositories.PermissionGroupRepository; import com.fasterxml.jackson.databind.ObjectMapper; import net.minidev.json.JSONObject; import org.apache.commons.lang.StringUtils; @@ -211,7 +211,7 @@ public class MigrationHelperMethods { } public static void evictPermissionCacheForUsers( - Set userIds, MongoTemplate mongoTemplate, CacheableRepositoryHelper cacheableRepositoryHelper) { + Set userIds, MongoTemplate mongoTemplate, PermissionGroupRepository permissionGroupRepository) { if (userIds == null || userIds.isEmpty()) { // Nothing to do here. @@ -223,8 +223,8 @@ public class MigrationHelperMethods { User user = mongoTemplate.findOne(query, User.class); if (user != null) { // blocking call for cache eviction to ensure its subscribed immediately before proceeding further. - cacheableRepositoryHelper - .evictPermissionGroupsUser(user.getEmail(), user.getTenantId()) + permissionGroupRepository + .evictAllPermissionGroupCachesForUser(user.getEmail(), user.getTenantId()) .block(); } });