From a3e2718271ba6682e14a6388c91f4667175083b3 Mon Sep 17 00:00:00 2001 From: rootdarkarchon Date: Wed, 18 Oct 2023 09:58:33 +0200 Subject: [PATCH] fix some potential crashes --- .../Authentication/SecretKeyAuthenticatorService.cs | 6 +++--- MareSynchronosServer/MareSynchronosServer/Hubs/MareHub.cs | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MareSynchronosServer/MareSynchronosServer/Authentication/SecretKeyAuthenticatorService.cs b/MareSynchronosServer/MareSynchronosServer/Authentication/SecretKeyAuthenticatorService.cs index 3d50093..4aafa93 100644 --- a/MareSynchronosServer/MareSynchronosServer/Authentication/SecretKeyAuthenticatorService.cs +++ b/MareSynchronosServer/MareSynchronosServer/Authentication/SecretKeyAuthenticatorService.cs @@ -57,15 +57,15 @@ public class SecretKeyAuthenticatorService using var context = scope.ServiceProvider.GetService(); var authReply = await context.Auth.AsNoTracking().SingleOrDefaultAsync(u => u.HashedKey == hashedSecretKey).ConfigureAwait(false); var isBanned = authReply?.IsBanned ?? false; - var primaryUid = authReply.PrimaryUserUID ?? authReply.UserUID; + var primaryUid = authReply.PrimaryUserUID ?? authReply?.UserUID; - if (authReply.PrimaryUserUID != null) + if (authReply?.PrimaryUserUID != null) { var primaryUser = await context.Auth.AsNoTracking().SingleOrDefaultAsync(u => u.UserUID == authReply.PrimaryUserUID).ConfigureAwait(false); isBanned = isBanned || primaryUser.IsBanned; } - SecretKeyAuthReply reply = new(authReply != null, authReply?.UserUID, authReply.PrimaryUserUID ?? authReply.UserUID, TempBan: false, isBanned); + SecretKeyAuthReply reply = new(authReply != null, authReply?.UserUID, authReply?.PrimaryUserUID ?? authReply?.UserUID, TempBan: false, isBanned); if (reply.Success) { diff --git a/MareSynchronosServer/MareSynchronosServer/Hubs/MareHub.cs b/MareSynchronosServer/MareSynchronosServer/Hubs/MareHub.cs index 9478b6b..4ba5a08 100644 --- a/MareSynchronosServer/MareSynchronosServer/Hubs/MareHub.cs +++ b/MareSynchronosServer/MareSynchronosServer/Hubs/MareHub.cs @@ -63,9 +63,8 @@ public partial class MareHub : Hub, IMareHub await Clients.Caller.Client_UpdateSystemInfo(_systemInfoService.SystemInfoDto).ConfigureAwait(false); - var dbUser = _dbContext.Users.SingleOrDefault(f => f.UID == UserUID); + var dbUser = await _dbContext.Users.SingleAsync(f => f.UID == UserUID).ConfigureAwait(false); dbUser.LastLoggedIn = DateTime.UtcNow; - await _dbContext.SaveChangesAsync().ConfigureAwait(false); await Clients.Caller.Client_ReceiveServerMessage(MessageSeverity.Information, "Welcome to Mare Synchronos \"" + _shardName + "\", Current Online Users: " + _systemInfoService.SystemInfoDto.OnlineUsers).ConfigureAwait(false); @@ -78,9 +77,10 @@ public partial class MareHub : Hub, IMareHub }; _dbContext.UserDefaultPreferredPermissions.Add(defaultPermissions); - await _dbContext.SaveChangesAsync().ConfigureAwait(false); } + await _dbContext.SaveChangesAsync().ConfigureAwait(false); + return new ConnectionDto(new UserData(dbUser.UID, string.IsNullOrWhiteSpace(dbUser.Alias) ? null : dbUser.Alias)) { CurrentClientVersion = _expectedClientVersion,