From: Pieter-Jan Briers Date: Tue, 24 Dec 2024 00:18:31 +0000 (+0100) Subject: Fix race condition causing disconnected admins to appear in adminwho (#34033) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=285e9349b672ce937f7afb16242baadf1b01d9a7;p=space-station-14.git Fix race condition causing disconnected admins to appear in adminwho (#34033) --- diff --git a/Content.Server/Administration/Managers/AdminManager.cs b/Content.Server/Administration/Managers/AdminManager.cs index 4e271009f7..2e2ebd31ba 100644 --- a/Content.Server/Administration/Managers/AdminManager.cs +++ b/Content.Server/Administration/Managers/AdminManager.cs @@ -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)