From be1edba5c21932897a9127f9c56f2e4db677f9b6 Mon Sep 17 00:00:00 2001 From: Loporrit <141286461+loporrit@users.noreply.github.com> Date: Thu, 14 Mar 2024 18:50:35 +0000 Subject: [PATCH] Remove group bans on user deletion --- .../MareSynchronosServer/Hubs/MareHub.Functions.cs | 2 ++ .../MareSynchronosShared/Utils/SharedDbFunctions.cs | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/MareSynchronosServer/MareSynchronosServer/Hubs/MareHub.Functions.cs b/MareSynchronosServer/MareSynchronosServer/Hubs/MareHub.Functions.cs index 2e1957e..bb2326b 100644 --- a/MareSynchronosServer/MareSynchronosServer/Hubs/MareHub.Functions.cs +++ b/MareSynchronosServer/MareSynchronosServer/Hubs/MareHub.Functions.cs @@ -23,6 +23,7 @@ public partial class MareHub var lodestone = await _dbContext.LodeStoneAuth.SingleOrDefaultAsync(a => a.User.UID == user.UID).ConfigureAwait(false); var groupPairs = await _dbContext.GroupPairs.Where(g => g.GroupUserUID == user.UID).ToListAsync().ConfigureAwait(false); var userProfileData = await _dbContext.UserProfileData.SingleOrDefaultAsync(u => u.UserUID == user.UID).ConfigureAwait(false); + var bannedEntries = await _dbContext.GroupBans.Where(u => u.BannedUserUID == user.UID).ToListAsync().ConfigureAwait(false); if (lodestone != null) { @@ -55,6 +56,7 @@ public partial class MareHub _mareMetrics.IncCounter(MetricsAPI.CounterUsersRegisteredDeleted, 1); + _dbContext.GroupBans.RemoveRange(bannedEntries); _dbContext.ClientPairs.RemoveRange(otherPairData); _dbContext.Users.Remove(user); _dbContext.Auth.Remove(auth); diff --git a/MareSynchronosServer/MareSynchronosShared/Utils/SharedDbFunctions.cs b/MareSynchronosServer/MareSynchronosShared/Utils/SharedDbFunctions.cs index a5d84a2..ac69f42 100644 --- a/MareSynchronosServer/MareSynchronosShared/Utils/SharedDbFunctions.cs +++ b/MareSynchronosServer/MareSynchronosShared/Utils/SharedDbFunctions.cs @@ -100,6 +100,10 @@ public static class SharedDbFunctions await dbContext.SaveChangesAsync().ConfigureAwait(false); } + var bannedinGroups = await dbContext.GroupBans.Where(u => u.BannedUserUID == user.UID).ToListAsync().ConfigureAwait(false); + + dbContext.GroupBans.RemoveRange(bannedinGroups); + _logger.LogInformation("User purged: {uid}", user.UID); dbContext.Auth.Remove(auth);