Move checking code for BlacklistedRange to the right place in sqlite (#29389)
This commit is contained in:
@@ -131,6 +131,10 @@ namespace Content.Server.Database
|
|||||||
|
|
||||||
if (exemptFlags is { } exempt)
|
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);
|
query = query.Where(b => (b.ExemptFlags & exempt) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,15 +148,12 @@ namespace Content.Server.Database
|
|||||||
ServerBanExemptFlags? exemptFlags,
|
ServerBanExemptFlags? exemptFlags,
|
||||||
bool newPlayer)
|
bool newPlayer)
|
||||||
{
|
{
|
||||||
// Any flag to bypass BlacklistedRange bans.
|
|
||||||
var exemptFromBlacklistedRange = exemptFlags != null && exemptFlags.Value != ServerBanExemptFlags.None;
|
|
||||||
|
|
||||||
if (!exemptFlags.GetValueOrDefault(ServerBanExemptFlags.None).HasFlag(ServerBanExemptFlags.IP)
|
if (!exemptFlags.GetValueOrDefault(ServerBanExemptFlags.None).HasFlag(ServerBanExemptFlags.IP)
|
||||||
&& address != null
|
&& address != null
|
||||||
&& ban.Address is not null
|
&& ban.Address is not null
|
||||||
&& address.IsInSubnet(ban.Address.ToTuple().Value)
|
&& address.IsInSubnet(ban.Address.ToTuple().Value)
|
||||||
&& (!ban.ExemptFlags.HasFlag(ServerBanExemptFlags.BlacklistedRange) ||
|
&& (!ban.ExemptFlags.HasFlag(ServerBanExemptFlags.BlacklistedRange) ||
|
||||||
newPlayer && !exemptFromBlacklistedRange))
|
newPlayer))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user