fix: Super user cache eviction when user is added via env variable (#37785)
This commit is contained in:
parent
a1c8cb69f0
commit
4727b4da99
|
|
@ -28,7 +28,6 @@ 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;
|
||||
|
|
@ -451,7 +450,7 @@ public class DatabaseChangelog2 {
|
|||
@ChangeSet(order = "10000", id = "update-super-users", author = "", runAlways = true)
|
||||
public void updateSuperUsers(
|
||||
MongoTemplate mongoTemplate,
|
||||
PermissionGroupRepository permissionGroupRepository,
|
||||
CacheableRepositoryHelper cacheableRepositoryHelper,
|
||||
PolicySolution policySolution,
|
||||
PolicyGenerator policyGenerator) {
|
||||
// Read the admin emails from the environment and update the super users accordingly
|
||||
|
|
@ -497,7 +496,7 @@ public class DatabaseChangelog2 {
|
|||
|
||||
Set<String> oldSuperUsers = instanceAdminPG.getAssignedToUserIds();
|
||||
Set<String> updatedUserIds = findSymmetricDiff(oldSuperUsers, userIds);
|
||||
evictPermissionCacheForUsers(updatedUserIds, mongoTemplate, permissionGroupRepository);
|
||||
evictPermissionCacheForUsers(updatedUserIds, mongoTemplate, cacheableRepositoryHelper);
|
||||
|
||||
Update update = new Update().set(PermissionGroup.Fields.assignedToUserIds, userIds);
|
||||
mongoTemplate.updateFirst(permissionGroupQuery, update, PermissionGroup.class);
|
||||
|
|
|
|||
|
|
@ -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.PermissionGroupRepository;
|
||||
import com.appsmith.server.repositories.CacheableRepositoryHelper;
|
||||
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<String> userIds, MongoTemplate mongoTemplate, PermissionGroupRepository permissionGroupRepository) {
|
||||
Set<String> userIds, MongoTemplate mongoTemplate, CacheableRepositoryHelper cacheableRepositoryHelper) {
|
||||
|
||||
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.
|
||||
permissionGroupRepository
|
||||
.evictAllPermissionGroupCachesForUser(user.getEmail(), user.getTenantId())
|
||||
cacheableRepositoryHelper
|
||||
.evictPermissionGroupsUser(user.getEmail(), user.getTenantId())
|
||||
.block();
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user