diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessConfigServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessConfigServiceImpl.java index 79d35436a8..06f391eada 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessConfigServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/AccessConfigServiceImpl.java @@ -233,12 +233,14 @@ public class AccessConfigServiceImpl implements AccessConfigService { for (String roleId : roleIds) { // 只给没有添加该权限的用户赋予该权限,已经添加了和添加了又取消的不操作 RoleOperationEntity roleOpe = roleOperationDao.getRoleOpe(roleId, operationKey); + boolean needRefreshCache = false; if (roleOpe == null) { // 没有该操作,则添加 RoleOperationEntity roleOperation = new RoleOperationEntity(); roleOperation.setOperationKey(operationKey); roleOperation.setRoleId(roleId); roleOperationDao.insert(roleOperation); + needRefreshCache = true; } for (String scopeKey : scopeKeys) { // 没有的话则添加 @@ -249,8 +251,14 @@ public class AccessConfigServiceImpl implements AccessConfigService { roleScopeEntity.setRoleId(roleId); roleScopeEntity.setScopeKey(scopeKey); roleScopeDao.insert(roleScopeEntity); + needRefreshCache = true; } } + + // 清空角色的权限缓存 + if (needRefreshCache) { + roleOpeScopeRedis.delRoleAllOpeScopes(roleId); + } } } }