Move checking code for BlacklistedRange to the right place in sqlite (#29389)

This commit is contained in:
nikthechampiongr
2024-07-04 19:02:53 +00:00
committed by GitHub
parent bc7c121713
commit 8e05e1cfed

View File

@@ -131,6 +131,10 @@ namespace Content.Server.Database
if (exemptFlags is { } exempt)
{
// Any flag to bypass BlacklistedRange bans.
if (exempt != ServerBanExemptFlags.None)
exempt |= ServerBanExemptFlags.BlacklistedRange;
query = query.Where(b => (b.ExemptFlags & exempt) == 0);
}
@@ -144,15 +148,12 @@ namespace Content.Server.Database
ServerBanExemptFlags? exemptFlags,
bool newPlayer)
{
// Any flag to bypass BlacklistedRange bans.
var exemptFromBlacklistedRange = exemptFlags != null && exemptFlags.Value != ServerBanExemptFlags.None;
if (!exemptFlags.GetValueOrDefault(ServerBanExemptFlags.None).HasFlag(ServerBanExemptFlags.IP)
&& address != null
&& ban.Address is not null
&& address.IsInSubnet(ban.Address.ToTuple().Value)
&& (!ban.ExemptFlags.HasFlag(ServerBanExemptFlags.BlacklistedRange) ||
newPlayer && !exemptFromBlacklistedRange))
newPlayer))
{
return true;
}