From a1a74b5f8fe2655070c099eda96c90f617e3d045 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Wed, 25 Nov 2020 21:15:34 +0000 Subject: [PATCH] Drop public client IDs for simplicity --- main.go | 24 +++++++++--------------- static/remote.js | 18 +++++++++--------- static/remote.ts | 24 ++++++++++++------------ 3 files changed, 30 insertions(+), 36 deletions(-) diff --git a/main.go b/main.go index 2cbcdf1..ef94aa2 100644 --- a/main.go +++ b/main.go @@ -22,14 +22,14 @@ import ( type activeRequest struct { RoomId string `json:"room_id"` AdminSecret string `json:"admin_secret"` - PublicClientId string `json:"public_client_id"` + ClientId string `json:"client_id"` Active bool `json:"active"` } type adminRequest struct { RoomId string `json:"room_id"` AdminSecret string `json:"admin_secret"` - PublicClientId string `json:"public_client_id"` + ClientId string `json:"client_id"` } type resetRequest struct { @@ -61,13 +61,12 @@ type removeRequest struct { } type client struct { - PublicClientId string `json:"public_client_id"` + ClientId string `json:"client_id"` Name string `json:"name"` Admin bool `json:"admin"` Active bool `json:"active"` ActiveStart int64 `json:"active_start"` - clientId string room *room lastSeen time.Time eventChan chan *event @@ -98,7 +97,6 @@ type room struct { roomId string timerStart time.Time clientById map[string]*client - clientByPublicId map[string]*client present map[*presentState]bool } @@ -219,9 +217,9 @@ func active(w http.ResponseWriter, r *http.Request) { return } - c := rm.clientByPublicId[req.PublicClientId] + c := rm.clientById[req.ClientId] if c == nil { - http.Error(w, "invalid public_client_id", http.StatusBadRequest) + http.Error(w, "invalid client_id", http.StatusBadRequest) return } @@ -256,9 +254,9 @@ func admin(w http.ResponseWriter, r *http.Request) { return } - c := rm.clientByPublicId[req.PublicClientId] + c := rm.clientById[req.ClientId] if c == nil { - http.Error(w, "invalid public_client_id", http.StatusBadRequest) + http.Error(w, "invalid client_id", http.StatusBadRequest) return } @@ -462,8 +460,7 @@ func (c *client) sendEvent(e *event) { } func (c *client) remove() { - delete(c.room.clientById, c.clientId) - delete(c.room.clientByPublicId, c.PublicClientId) + delete(c.room.clientById, c.ClientId) c.room.sendAdminEvent(&adminEvent{ Client: c, @@ -490,7 +487,6 @@ func newRoom(roomId string) *room { roomId: roomId, timerStart: time.Now(), clientById: map[string]*client{}, - clientByPublicId: map[string]*client{}, present: map[*presentState]bool{}, } } @@ -513,12 +509,10 @@ func (rm *room) getClient(clientId string) *client { c := rm.clientById[clientId] if c == nil { c = &client{ - clientId: clientId, - PublicClientId: uuid.New().String(), + ClientId: clientId, room: rm, } rm.clientById[clientId] = c - rm.clientByPublicId[c.PublicClientId] = c rm.sendAdminEvent(&adminEvent{ Client: c, diff --git a/static/remote.js b/static/remote.js index 9b4ae87..cf7a742 100644 --- a/static/remote.js +++ b/static/remote.js @@ -178,10 +178,10 @@ function renderAdmin(roomId, adminSecret, prnt, es) { return; } const client = event.admin_event.client; - let row = rows.get(client.public_client_id); + let row = rows.get(client.client_id); if (row) { row.remove(); - rows.delete(client.public_client_id); + rows.delete(client.client_id); } if (event.admin_event.remove) { return; @@ -206,14 +206,14 @@ function renderAdmin(roomId, adminSecret, prnt, es) { if (!confirm(`Grant admin access to ${client.name}?`)) { return; } - admin(roomId, adminSecret, client.public_client_id); + admin(roomId, adminSecret, client.client_id); } }); const activeCell = create(row, "td", "👆", client.active ? ["active", "enable"] : ["active"]); activeCell.addEventListener("click", () => { - active(roomId, adminSecret, client.public_client_id, !activeCell.classList.contains("enable")); + active(roomId, adminSecret, client.client_id, !activeCell.classList.contains("enable")); }); - rows.set(client.public_client_id, row); + rows.set(client.client_id, row); }); setInterval(() => { const now = new Date(); @@ -227,11 +227,11 @@ function renderAdmin(roomId, adminSecret, prnt, es) { } }, 250); } -function active(roomId, adminSecret, publicClientId, val) { +function active(roomId, adminSecret, clientId, val) { const req = { room_id: roomId, admin_secret: adminSecret, - public_client_id: publicClientId, + client_id: clientId, active: val, }; fetch("api/active", { @@ -242,11 +242,11 @@ function active(roomId, adminSecret, publicClientId, val) { body: JSON.stringify(req), }); } -function admin(roomId, adminSecret, publicClientId) { +function admin(roomId, adminSecret, clientId) { const req = { room_id: roomId, admin_secret: adminSecret, - public_client_id: publicClientId, + client_id: clientId, }; fetch("api/admin", { method: "POST", diff --git a/static/remote.ts b/static/remote.ts index 3c296ad..a4b2afd 100644 --- a/static/remote.ts +++ b/static/remote.ts @@ -1,14 +1,14 @@ interface ActiveRequest { room_id: string; admin_secret: string; - public_client_id: string; + client_id: string; active: boolean; } interface AdminRequest { room_id: string; admin_secret: string; - public_client_id: string; + client_id: string; } interface AnnounceRequest { @@ -57,7 +57,7 @@ interface AdminEvent { } interface Client { - public_client_id: string; + client_id: string; name: string; admin: boolean; active: boolean; @@ -285,11 +285,11 @@ function renderAdmin(roomId: string, adminSecret: string, prnt: HTMLElement, es: } const client = event.admin_event.client; - let row = rows.get(client.public_client_id); + let row = rows.get(client.client_id); if (row) { row.remove(); - rows.delete(client.public_client_id); + rows.delete(client.client_id); } if (event.admin_event.remove) { @@ -319,16 +319,16 @@ function renderAdmin(roomId: string, adminSecret: string, prnt: HTMLElement, es: if (!confirm(`Grant admin access to ${client.name}?`)) { return; } - admin(roomId, adminSecret, client.public_client_id); + admin(roomId, adminSecret, client.client_id); } }); const activeCell = create(row, "td", "👆", client.active ? ["active", "enable"] : ["active"]) as HTMLTableCellElement; activeCell.addEventListener("click", () => { - active(roomId, adminSecret, client.public_client_id, !activeCell.classList.contains("enable")); + active(roomId, adminSecret, client.client_id, !activeCell.classList.contains("enable")); }); - rows.set(client.public_client_id, row); + rows.set(client.client_id, row); }); setInterval(() => { @@ -345,11 +345,11 @@ function renderAdmin(roomId: string, adminSecret: string, prnt: HTMLElement, es: }, 250); } -function active(roomId: string, adminSecret: string, publicClientId: string, val: boolean) { +function active(roomId: string, adminSecret: string, clientId: string, val: boolean) { const req: ActiveRequest = { room_id: roomId, admin_secret: adminSecret, - public_client_id: publicClientId, + client_id: clientId, active: val, }; @@ -362,11 +362,11 @@ function active(roomId: string, adminSecret: string, publicClientId: string, val }) } -function admin(roomId: string, adminSecret: string, publicClientId: string) { +function admin(roomId: string, adminSecret: string, clientId: string) { const req: AdminRequest = { room_id: roomId, admin_secret: adminSecret, - public_client_id: publicClientId, + client_id: clientId, }; fetch("api/admin", {