From f093ef762bbbda272b43cc2433cab787b63f4a08 Mon Sep 17 00:00:00 2001 From: m1k1o Date: Thu, 14 Jan 2021 21:41:00 +0100 Subject: [PATCH] fix locked room bug --- client/src/locale/en-us.ts | 8 ++++---- server/internal/websocket/handler.go | 15 ++++----------- server/internal/websocket/websocket.go | 2 +- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/client/src/locale/en-us.ts b/client/src/locale/en-us.ts index 23caf912..b552a37a 100644 --- a/client/src/locale/en-us.ts +++ b/client/src/locale/en-us.ts @@ -48,10 +48,10 @@ export const controls = { } export const room = { - lock: 'Lock Room', - unlock: 'Unlock Room', - locked: 'Room Locked', - unlocked: 'Room Unlocked', + lock: 'Lock Room (for users)', + unlock: 'Unlock Room (for users)', + locked: 'Room Locked (for users)', + unlocked: 'Room Unlocked (for users)', } export const setting = { diff --git a/server/internal/websocket/handler.go b/server/internal/websocket/handler.go index af829c82..0ad18393 100644 --- a/server/internal/websocket/handler.go +++ b/server/internal/websocket/handler.go @@ -22,7 +22,7 @@ type MessageHandler struct { locked bool } -func (h *MessageHandler) Connected(id string, socket *WebSocket) (bool, string, error) { +func (h *MessageHandler) Connected(admin bool, socket *WebSocket) (bool, string, error) { address := socket.Address() if address == "" { h.logger.Debug().Msg("no remote address") @@ -34,22 +34,15 @@ func (h *MessageHandler) Connected(id string, socket *WebSocket) (bool, string, } } - if h.locked { - session, ok := h.sessions.Get(id) - if !ok || !session.Admin() { - h.logger.Debug().Msg("server locked") - return false, "locked", nil - } + if h.locked && !admin { + h.logger.Debug().Msg("server locked") + return false, "locked", nil } return true, "", nil } func (h *MessageHandler) Disconnected(id string) error { - if h.locked && len(h.sessions.Admins()) == 0 { - h.locked = false - } - return h.sessions.Destroy(id) } diff --git a/server/internal/websocket/websocket.go b/server/internal/websocket/websocket.go index 77e9651d..b4412b3a 100644 --- a/server/internal/websocket/websocket.go +++ b/server/internal/websocket/websocket.go @@ -150,7 +150,7 @@ func (ws *WebSocketHandler) Upgrade(w http.ResponseWriter, r *http.Request) erro connection: connection, } - ok, reason, err := ws.handler.Connected(id, socket) + ok, reason, err := ws.handler.Connected(admin, socket) if err != nil { ws.logger.Error().Err(err).Msg("connection failed") return err