]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fix race condition causing disconnected admins to appear in adminwho (#34033)
authorPieter-Jan Briers <pieterjan.briers+git@gmail.com>
Tue, 24 Dec 2024 00:18:31 +0000 (01:18 +0100)
committerGitHub <noreply@github.com>
Tue, 24 Dec 2024 00:18:31 +0000 (11:18 +1100)
Content.Server/Administration/Managers/AdminManager.cs

index 4e271009f71cc5b49fcff4a9521f93195056003f..2e2ebd31baa8f69da2281dcd83d75e08906a6af4 100644 (file)
@@ -408,6 +408,17 @@ namespace Content.Server.Administration.Managers
         }
 
         private async Task<(AdminData dat, int? rankId, bool specialLogin)?> LoadAdminData(ICommonSession session)
+        {
+            var result = await LoadAdminDataCore(session);
+
+            // Make sure admin didn't disconnect while data was loading.
+            if (session.Status != SessionStatus.InGame)
+                return null;
+
+            return result;
+        }
+
+        private async Task<(AdminData dat, int? rankId, bool specialLogin)?> LoadAdminDataCore(ICommonSession session)
         {
             var promoteHost = IsLocal(session) && _cfg.GetCVar(CCVars.ConsoleLoginLocal)
                               || _promotedPlayers.Contains(session.UserId)