summaryrefslogtreecommitdiffstats
path: root/api/web_conn.go
diff options
context:
space:
mode:
authorJoramWilander <jwawilander@gmail.com>2015-10-15 10:44:04 -0400
committerJoramWilander <jwawilander@gmail.com>2015-10-16 11:48:55 -0400
commit2b5ec4a3c076bb1f18eeafbd96b0a80c6b8bfbaa (patch)
treee08561de76eb4939636d00317f8f5120b0db77e2 /api/web_conn.go
parent3c593af598b2bb986244099ed1b9a46ed3837911 (diff)
downloadchat-2b5ec4a3c076bb1f18eeafbd96b0a80c6b8bfbaa.tar.gz
chat-2b5ec4a3c076bb1f18eeafbd96b0a80c6b8bfbaa.tar.bz2
chat-2b5ec4a3c076bb1f18eeafbd96b0a80c6b8bfbaa.zip
Small refactor of websocket code on client and server
Diffstat (limited to 'api/web_conn.go')
-rw-r--r--api/web_conn.go25
1 files changed, 6 insertions, 19 deletions
diff --git a/api/web_conn.go b/api/web_conn.go
index a5099e520..50a003ace 100644
--- a/api/web_conn.go
+++ b/api/web_conn.go
@@ -92,24 +92,9 @@ func (c *WebConn) writePump() {
return
}
- if len(msg.ChannelId) > 0 {
- allowed, ok := c.ChannelAccessCache[msg.ChannelId]
- if !ok {
- allowed = hasPermissionsToChannel(Srv.Store.Channel().CheckPermissionsTo(c.TeamId, msg.ChannelId, c.UserId))
- c.ChannelAccessCache[msg.ChannelId] = allowed
- }
-
- if allowed {
- c.WebSocket.SetWriteDeadline(time.Now().Add(WRITE_WAIT))
- if err := c.WebSocket.WriteJSON(msg); err != nil {
- return
- }
- }
- } else {
- c.WebSocket.SetWriteDeadline(time.Now().Add(WRITE_WAIT))
- if err := c.WebSocket.WriteJSON(msg); err != nil {
- return
- }
+ c.WebSocket.SetWriteDeadline(time.Now().Add(WRITE_WAIT))
+ if err := c.WebSocket.WriteJSON(msg); err != nil {
+ return
}
case <-ticker.C:
@@ -121,9 +106,11 @@ func (c *WebConn) writePump() {
}
}
-func (c *WebConn) updateChannelAccessCache(channelId string) {
+func (c *WebConn) updateChannelAccessCache(channelId string) bool {
allowed := hasPermissionsToChannel(Srv.Store.Channel().CheckPermissionsTo(c.TeamId, channelId, c.UserId))
c.ChannelAccessCache[channelId] = allowed
+
+ return allowed
}
func hasPermissionsToChannel(sc store.StoreChannel) bool {