Show ban and note count in ahelp window (#15328)

This commit is contained in:
DrSmugleaf
2023-04-11 17:34:25 -07:00
committed by GitHub
parent 98b4af8df0
commit 26cd16eeaa
13 changed files with 142 additions and 34 deletions

View File

@@ -97,6 +97,22 @@ namespace Content.Server.Database
.ToList()!;
}
public override async Task<int> CountServerBansAsync(IPAddress? address, NetUserId? userId, ImmutableArray<byte>? hwId, bool includeUnbanned)
{
await using var db = await GetDbImpl();
var exempt = await GetBanExemptionCore(db, userId);
// SQLite can't do the net masking stuff we need to match IP address ranges.
// So just pull down the whole list into memory.
var queryBans = await GetAllBans(db.SqliteDbContext, includeUnbanned, exempt);
return queryBans
.Where(b => BanMatches(b, address, userId, hwId))
.Select(ConvertBan)
.Count();
}
private static async Task<List<ServerBan>> GetAllBans(
SqliteServerDbContext db,
bool includeUnbanned,