diff options
Diffstat (limited to 'store')
-rw-r--r-- | store/sql_user_store.go | 13 | ||||
-rw-r--r-- | store/store.go | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/store/sql_user_store.go b/store/sql_user_store.go index 984b544d7..aa3bb4380 100644 --- a/store/sql_user_store.go +++ b/store/sql_user_store.go @@ -555,6 +555,19 @@ func (us SqlUserStore) GetProfiles(teamId string, offset int, limit int) StoreCh return storeChannel } +func (us SqlUserStore) InvalidateProfilesInChannelCacheByUser(userId string) { + keys := profilesInChannelCache.Keys() + + for _, key := range keys { + if cacheItem, ok := profilesInChannelCache.Get(key); ok { + userMap := cacheItem.(map[string]*model.User) + if _, userInCache := userMap[userId]; userInCache { + profilesInChannelCache.Remove(key) + } + } + } +} + func (us SqlUserStore) InvalidateProfilesInChannelCache(channelId string) { profilesInChannelCache.Remove(channelId) } diff --git a/store/store.go b/store/store.go index 83a077c10..d0790263a 100644 --- a/store/store.go +++ b/store/store.go @@ -143,6 +143,7 @@ type UserStore interface { UpdateMfaActive(userId string, active bool) StoreChannel Get(id string) StoreChannel GetAll() StoreChannel + InvalidateProfilesInChannelCacheByUser(userId string) InvalidateProfilesInChannelCache(channelId string) GetProfilesInChannel(channelId string, offset int, limit int, allowFromCache bool) StoreChannel GetProfilesNotInChannel(teamId string, channelId string, offset int, limit int) StoreChannel |