From c935aec5118273e83ffa27eee901848610a38a53 Mon Sep 17 00:00:00 2001 From: Jackz Date: Sat, 12 Oct 2024 11:03:15 -0500 Subject: [PATCH] Auth logic changes --- plugins/adminpanel.smx | Bin 26753 -> 26772 bytes scripting/adminpanel.sp | 8 +++-- scripting/sm_overlay.sp | 72 ++++++++++++++++++++++++++++------------ 3 files changed, 55 insertions(+), 25 deletions(-) diff --git a/plugins/adminpanel.smx b/plugins/adminpanel.smx index 447ed39a9573438fdbea3d8b2b07f3b96453dd15..d6db31d6380f1d1a1020383f4fc7b8331e1cb5a1 100644 GIT binary patch literal 26772 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 z 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±u>W+dkd7Gkb6t9O?vlS5_VS zE?WPu^kq)z%?$mpzstf^HzQL#E1q?Y9cEi+m;jUSNp~0`qsZ8c19Z=H-vE!&D~eo} zVb%fAN!oK|583_C7Jx0dlAL=TISp@h8i^ZyP^r~DC9)frVLr& z>7THgVUrD^MV_Zqt2{F6zobybe2+U$^tb5vzkFJZqiqf+bJV1e&Q&Io+tL_mLU+v5 zC+eh}s+F%KKD5j^cP#O%h8aIxcd=ak_c-Pc-3+jg@DihdJ&D$&*n5q12m@bQwDFy}exU&->QH~ZR)6<0y5`5vuo z!B0gSDe&fDlVer=1jp6IcVDIS{HNO4F2S|pC)bCh|9%19gvfW-hs+9}*!A#UV`QaA z`9gh3VZ!pql^99aGo@Cx>3qUyU@sc_kpu z!AZ{GY1PX&5H*o1g@=|FTOf1(+J*|`4S@ic?TjnyWkgU1cb)Ms6BWf4F@g~D*{YkEh+Ee@Z3m*CP_qen8 z%N7C~S3UqIRJ;<4=wB9I03de36lZq}XvS=GwF<4(3zGX`bbdL&`bCqW+T+W2u?vCL z`3GLrA5M(lB->gC-oS6$6i7dfh@bXcmS!p@yuR#iHsAZiE0(D}?55ZLW#rTp>7UXQ zU$J?R-m}YXSB!s{_Z*)Y9jt4-uC~ZwZo@e$M0Qa3|Cla~D!zPTGcLSeb=su2`QlxS z*)SINKBitc@7ndf&P#l#E-zt9l6PC?YE5%}tXatHLi?x9Um0H|LcWH*ZT)$#+oyUd z!`9Je(uL3NX62~&e~P-mn!&AqfIrLi>KF;87Q5lS_hi action name has no handler, fa StringMap actionNamespaceHandlers; // { namespace: { [action name] -> handler } } enum authState { - AuthError = -1, - NotAuthorized, - Authorized, + Auth_Error = -1, + Auth_None, + Auth_Success, } public Plugin myinfo = @@ -80,7 +80,7 @@ public void OnPluginStart() { g_globalVars = new JSONObject(); - cvarManagerUrl = CreateConVar("sm_overlay_manager_url", "ws://localhost:3011/socket", ""); + cvarManagerUrl = CreateConVar("sm_overlay_manager_url", "ws://desktop:3011/socket", ""); cvarManagerUrl.AddChangeHook(OnUrlChanged); OnUrlChanged(cvarManagerUrl, "", ""); @@ -109,7 +109,7 @@ public void OnPluginEnd() { } bool isManagerReady() { - return g_ws != null && g_ws.WsOpen() && g_authState == Authorized; + return g_ws != null && g_ws.WsOpen() && g_authState == Auth_Success; } void SendAllPlayers() { @@ -141,8 +141,15 @@ Action Command_Overlay(int client, int args) { pos.SetInt("y", 200); defaults.Set("pos", pos); temp.Set("defaults", defaults); - SendEvent_RegisterTempUI("temp", 180, temp); - ReplyToCommand(client, "Sent"); + bool result = SendEvent_RegisterTempUI("temp", 180, temp); + ReplyToCommand(client, result ? "Sent" : "Error"); + } else if(StrEqual(arg, "trigger_login")) { + for(int i = 1; i <= MaxClients; i++) { + if(IsClientInGame(i) && !IsFakeClient(i)) { + GetClientAuthId(i, AuthId_Steam2, steamidCache[i], 32); + SendEvent_PlayerJoined(steamidCache[i]); + } + } } else if(StrEqual(arg, "connect")) { ConnectManager(); } else { @@ -190,7 +197,7 @@ void Event_PlayerDisconnect(Event event, const char[] name, bool dontBroadcast) void OnWSConnect(WebSocket ws, any arg) { connectAttempts = 0; - g_authState = NotAuthorized; + g_authState = Auth_None; PrintToServer("[Overlay] Connected, authenticating"); JSONObject obj = new JSONObject(); obj.SetString("type", "server"); @@ -200,7 +207,7 @@ void OnWSConnect(WebSocket ws, any arg) { } void OnWSDisconnect(WebSocket ws, int attempt) { - if(g_authState == AuthError) { + if(g_authState == Auth_Error) { return; } connectAttempts++; @@ -217,10 +224,22 @@ Action Timer_Reconnect(Handle h) { void OnWSJson(WebSocket ws, JSON message, any data) { JSONObject obj = view_as(message); - if(obj.HasKey("error")) { - if(g_authState == NotAuthorized) { - g_authState = AuthError; + if(g_authState == Auth_None) { + if(obj.HasKey("error")) { + g_authState = Auth_Error; + char buffer[2048]; + message.ToString(buffer, sizeof(buffer)); + PrintToServer("[Overlay] Auth Failure: %s", buffer); + DisconnectManager(); + } else if(obj.HasKey("type")) { + char buffer[128]; + obj.GetString("type", buffer, sizeof(buffer)); + PrintToServer("[Overlay::Debug] Auth: %s", buffer); + if(StrEqual(buffer, "authorized")) { + g_authState = Auth_Success; + } } + } else if(obj.HasKey("error")) { char buffer[2048]; message.ToString(buffer, sizeof(buffer)); PrintToServer("[Overlay] Error: %s", buffer); @@ -298,14 +317,16 @@ int FindClientBySteamId2(const char[] steamid) { } -void ConnectManager() { +bool ConnectManager() { DisconnectManager(); - if(authToken[0] == '\0') return; + if(authToken[0] == '\0') return false; PrintToServer("[Overlay] Connecting to \"%s\"", managerUrl); if(g_ws.Connect()) { PrintToServer("[Overlay] Connected"); + return true; } + return false; } void DisconnectManager() { @@ -314,28 +335,30 @@ void DisconnectManager() { } } -void SendEvent_PlayerJoined(const char[] steamid) { - if(!isManagerReady()) return; +bool SendEvent_PlayerJoined(const char[] steamid) { + if(!isManagerReady()) return false; JSONObject obj = new JSONObject(); obj.SetString("type", OUT_EVENT_IDS[Event_PlayerJoin]); obj.SetString("steamid", steamid); g_ws.Write(obj); obj.Clear(); delete obj; + return true; } -void SendEvent_PlayerLeft(const char[] steamid) { - if(!isManagerReady()) return; +bool SendEvent_PlayerLeft(const char[] steamid) { + if(!isManagerReady()) return false; JSONObject obj = new JSONObject(); obj.SetString("type", OUT_EVENT_IDS[Event_PlayerLeft]); obj.SetString("steamid", steamid); g_ws.Write(obj); obj.Clear(); delete obj; + return true; } -void SendEvent_RegisterTempUI(const char[] elemId, int expiresSeconds = 0, JSONObject element) { - if(!isManagerReady()) return; +bool SendEvent_RegisterTempUI(const char[] elemId, int expiresSeconds = 0, JSONObject element) { + if(!isManagerReady()) return false; JSONObject obj = new JSONObject(); obj.SetString("type", OUT_EVENT_IDS[Event_RegisterTempUI]); obj.SetString("elem_id", elemId); @@ -345,11 +368,15 @@ void SendEvent_RegisterTempUI(const char[] elemId, int expiresSeconds = 0, JSONO g_ws.Write(obj); obj.Clear(); delete obj; + return true; +} + +methodmap PlayerList < JSONArray { } // namespace optional -void SendEvent_UpdateUI(const char[] elemNamespace, const char[] elemId, bool visibility, JSONObject variables) { - if(!isManagerReady()) return; +bool SendEvent_UpdateUI(const char[] elemNamespace, const char[] elemId, bool visibility, JSONObject variables) { + if(!isManagerReady()) return false; JSONObject obj = new JSONObject(); if(elemNamespace[0] != '\0') obj.SetString("namespace", elemNamespace); @@ -359,6 +386,7 @@ void SendEvent_UpdateUI(const char[] elemNamespace, const char[] elemId, bool vi g_ws.Write(obj); obj.Clear(); delete obj; + return true; } //SendTempUI(int client, const char[] id, int lifetime, JSONObject element);