Fix: Mailbox Stats über Dovecot mit config/mailpool.php

main v1.0.128
boban 2025-11-01 22:10:01 +01:00
parent 77f22518c8
commit 6c3cde5f65
1 changed files with 6 additions and 15 deletions

View File

@ -134,31 +134,22 @@ class Fail2BanJailModal extends ModalComponent
foreach ($ips as $ip) {
$banAt = null; $until = null; $remaining = null;
// 2) DB-Info pro IP (optional, je nach Schema belegt)
// 1) Primär: DB
if ($info = $this->banInfoFromDb($jail, $ip)) {
$banAt = $info['banned_at'];
if ((int)$info['expire'] === -1) {
$remaining = -1;
$remaining = -1; // permanent
} elseif ((int)$info['expire'] > 0) {
$until = (int)$info['expire'];
$remaining = max(0, $until - time());
}
}
// 3) Fallback: Log + Default-Bantime
if ($remaining === null) {
$banAt = $banAt ?? $this->lastBanTimestamp($jail, $ip);
if ($banAt !== null) {
$remaining = max(0, $defaultBantime - (time() - $banAt));
$until = $remaining > 0 ? $banAt + $defaultBantime : null;
} else {
$remaining = -2; // ~unbekannt/approx
// kein expire in DB → Fallback unten
}
}
// 4) Safety: falls 0s, aber F2B hält sie noch → als „~unbekannt“ kennzeichnen
if ($remaining === 0 && $this->isStillBanned($jail, $ip)) {
$remaining = -2;
// 2) Fallback: KEIN fixes Datum, nur "~ Bantime"
if ($remaining === null) {
$remaining = -2; // "~ ca. {$defaultBantime}s"
}
[$timeText, $metaText, $boxClass] = $this->present($remaining, $banAt, $until);