From d92cfc851a847876118ce87c550bfff73ea08a1e Mon Sep 17 00:00:00 2001 From: Martin Kraft Date: Thu, 26 Mar 2020 14:17:40 -0400 Subject: [PATCH] MM-23606: Fix role cache invalidation. (#14156) * MM-23606: Fix role cache invalidation. * MM-23606: Adds cache invalidation to delete scheme method. * MM-23606: Clear the roles permissions cache when the CLI resets permissions system. * MM-23606: Removes comment and duplicate cache clear. --- store/localcachelayer/layer.go | 1 - store/localcachelayer/role_layer.go | 2 +- store/localcachelayer/scheme_layer.go | 4 ++-- store/localcachelayer/team_layer.go | 1 + 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/store/localcachelayer/layer.go b/store/localcachelayer/layer.go index 0027e6c26c..db4251e237 100644 --- a/store/localcachelayer/layer.go +++ b/store/localcachelayer/layer.go @@ -297,6 +297,5 @@ func (s *LocalCacheStore) Invalidate() { s.doClearCacheCluster(s.userProfileByIdsCache) s.doClearCacheCluster(s.profilesInChannelCache) s.doClearCacheCluster(s.teamAllTeamIdsForUserCache) - s.doClearCacheCluster(s.roleCache) s.doClearCacheCluster(s.rolePermissionsCache) } diff --git a/store/localcachelayer/role_layer.go b/store/localcachelayer/role_layer.go index 2c6ac715fa..0af6a7d5bd 100644 --- a/store/localcachelayer/role_layer.go +++ b/store/localcachelayer/role_layer.go @@ -35,7 +35,7 @@ func (s *LocalCacheRoleStore) handleClusterInvalidateRolePermissions(msg *model. func (s LocalCacheRoleStore) Save(role *model.Role) (*model.Role, *model.AppError) { if len(role.Name) != 0 { defer s.rootStore.doInvalidateCacheCluster(s.rootStore.roleCache, role.Name) - defer s.rootStore.doClearCacheCluster(s.rootStore.rolePermissionsCache) // TODO: This in other places? + defer s.rootStore.doClearCacheCluster(s.rootStore.rolePermissionsCache) } return s.RoleStore.Save(role) } diff --git a/store/localcachelayer/scheme_layer.go b/store/localcachelayer/scheme_layer.go index 693d5edea3..daae190c50 100644 --- a/store/localcachelayer/scheme_layer.go +++ b/store/localcachelayer/scheme_layer.go @@ -46,13 +46,13 @@ func (s LocalCacheSchemeStore) Get(schemeId string) (*model.Scheme, *model.AppEr func (s LocalCacheSchemeStore) Delete(schemeId string) (*model.Scheme, *model.AppError) { defer s.rootStore.doInvalidateCacheCluster(s.rootStore.schemeCache, schemeId) defer s.rootStore.doClearCacheCluster(s.rootStore.roleCache) - + defer s.rootStore.doClearCacheCluster(s.rootStore.rolePermissionsCache) return s.SchemeStore.Delete(schemeId) } func (s LocalCacheSchemeStore) PermanentDeleteAll() *model.AppError { defer s.rootStore.doClearCacheCluster(s.rootStore.schemeCache) defer s.rootStore.doClearCacheCluster(s.rootStore.roleCache) - + defer s.rootStore.doClearCacheCluster(s.rootStore.rolePermissionsCache) return s.SchemeStore.PermanentDeleteAll() } diff --git a/store/localcachelayer/team_layer.go b/store/localcachelayer/team_layer.go index a39b040da4..457827d24f 100644 --- a/store/localcachelayer/team_layer.go +++ b/store/localcachelayer/team_layer.go @@ -70,6 +70,7 @@ func (s LocalCacheTeamStore) Update(team *model.Team) (*model.Team, *model.AppEr if err != nil { return nil, err } + defer s.rootStore.doClearCacheCluster(s.rootStore.rolePermissionsCache) if oldTeam != nil && oldTeam.DeleteAt == 0 { s.rootStore.doClearCacheCluster(s.rootStore.teamAllTeamIdsForUserCache)