MIFOSX-716: evict user caches when roles and permissions change to stop stale data being returned.

This commit is contained in:
Keith Woodlock
2013-10-04 12:05:09 +01:00
parent 2bd812899a
commit d37440687b
2 changed files with 13 additions and 0 deletions
@@ -19,6 +19,8 @@ import org.mifosplatform.useradministration.domain.PermissionRepository;
import org.mifosplatform.useradministration.exception.PermissionNotFoundException;
import org.mifosplatform.useradministration.serialization.PermissionsCommandFromApiJsonDeserializer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Caching;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -37,6 +39,9 @@ public class PermissionWritePlatformServiceJpaRepositoryImpl implements Permissi
this.fromApiJsonDeserializer = fromApiJsonDeserializer;
}
@Caching(evict = {
@CacheEvict(value = "users", allEntries = true),
@CacheEvict(value = "usersByUsername", allEntries = true)})
@Transactional
@Override
public CommandProcessingResult updateMakerCheckerPermissions(final JsonCommand command) {
@@ -25,6 +25,8 @@ import org.mifosplatform.useradministration.serialization.PermissionsCommandFrom
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Caching;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -95,6 +97,9 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements RoleWritePlatf
logger.error(dve.getMessage(), dve);
}
@Caching(evict = {
@CacheEvict(value = "users", allEntries = true),
@CacheEvict(value = "usersByUsername", allEntries = true)})
@Transactional
@Override
public CommandProcessingResult updateRole(final Long roleId, final JsonCommand command) {
@@ -124,6 +129,9 @@ public class RoleWritePlatformServiceJpaRepositoryImpl implements RoleWritePlatf
}
}
@Caching(evict = {
@CacheEvict(value = "users", allEntries = true),
@CacheEvict(value = "usersByUsername", allEntries = true)})
@Transactional
@Override
public CommandProcessingResult updateRolePermissions(final Long roleId, final JsonCommand command) {