diff options
-rw-r--r-- | api/context.go | 11 | ||||
-rw-r--r-- | api/web_hub.go | 23 | ||||
-rw-r--r-- | einterfaces/cluster.go | 1 |
3 files changed, 14 insertions, 21 deletions
diff --git a/api/context.go b/api/context.go index 257f43174..7466d0b05 100644 --- a/api/context.go +++ b/api/context.go @@ -474,6 +474,14 @@ func GetSession(token string) *model.Session { func RemoveAllSessionsForUserId(userId string) { + RemoveAllSessionsForUserIdSkipClusterSend(userId) + + if einterfaces.GetClusterInterface() != nil { + einterfaces.GetClusterInterface().RemoveAllSessionsForUserId(userId) + } +} + +func RemoveAllSessionsForUserIdSkipClusterSend(userId string) { keys := sessionCache.Keys() for _, key := range keys { @@ -485,9 +493,6 @@ func RemoveAllSessionsForUserId(userId string) { } } - if einterfaces.GetClusterInterface() != nil { - einterfaces.GetClusterInterface().RemoveAllSessionsForUserId(userId) - } } func AddSessionToCache(session *model.Session) { diff --git a/api/web_hub.go b/api/web_hub.go index 5f480880e..23c01eb1b 100644 --- a/api/web_hub.go +++ b/api/web_hub.go @@ -101,30 +101,19 @@ func PublishSkipClusterSend(message *model.WebSocketEvent) { } func InvalidateCacheForUser(userId string) { - - Srv.Store.Channel().InvalidateAllChannelMembersForUser(userId) - - for _, hub := range hubs { - hub.InvalidateUser(userId) - } + InvalidateCacheForUserSkipClusterSend(userId) if einterfaces.GetClusterInterface() != nil { einterfaces.GetClusterInterface().InvalidateCacheForUser(userId) } } -func InvalidateCacheForChannel(channelId string) { - - // XXX TODO FIX ME - // This can be removed, but the performance branch - // needs to be merged into master so it can be removed - // from the enterprise repo as well. - - // hub.invalidateChannel <- channelId +func InvalidateCacheForUserSkipClusterSend(userId string) { + Srv.Store.Channel().InvalidateAllChannelMembersForUser(userId) - // if einterfaces.GetClusterInterface() != nil { - // einterfaces.GetClusterInterface().InvalidateCacheForChannel(channelId) - // } + for _, hub := range hubs { + hub.InvalidateUser(userId) + } } func (h *Hub) Register(webConn *WebConn) { diff --git a/einterfaces/cluster.go b/einterfaces/cluster.go index 921576ad2..6b4395398 100644 --- a/einterfaces/cluster.go +++ b/einterfaces/cluster.go @@ -13,7 +13,6 @@ type ClusterInterface interface { GetClusterInfos() []*model.ClusterInfo RemoveAllSessionsForUserId(userId string) InvalidateCacheForUser(userId string) - InvalidateCacheForChannel(channelId string) Publish(event *model.WebSocketEvent) UpdateStatus(status *model.Status) GetLogs() ([]string, *model.AppError) |