From 8c1e495ab7eed1dff3eaf7680492a8397d88e72e Mon Sep 17 00:00:00 2001 From: Shish Date: Sun, 10 Jun 2012 17:49:17 +0100 Subject: [PATCH] better IP Ban logging --- ext/ipban/main.php | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/ext/ipban/main.php b/ext/ipban/main.php index f3346a6c..ad5dd3f1 100644 --- a/ext/ipban/main.php +++ b/ext/ipban/main.php @@ -56,6 +56,7 @@ class IPBan extends Extension { else $end = $_POST['end']; send_event(new AddIPBanEvent($_POST['ip'], $_POST['reason'], $end)); + flash_message("Ban for {$_POST['ip']} added"); $page->set_mode("redirect"); $page->set_redirect(make_link("ip_ban/list")); } @@ -63,6 +64,8 @@ class IPBan extends Extension { else if($event->get_arg(0) == "remove" && $user->check_auth_token()) { if(isset($_POST['id'])) { send_event(new RemoveIPBanEvent($_POST['id'])); + + flash_message("Ban removed"); $page->set_mode("redirect"); $page->set_redirect(make_link("ip_ban/list")); } @@ -86,14 +89,21 @@ class IPBan extends Extension { } public function onAddIPBan(AddIPBanEvent $event) { - global $user; - $this->add_ip_ban($event->ip, $event->reason, $event->end, $user); + global $user, $database; + $sql = "INSERT INTO bans (ip, reason, end_timestamp, banner_id) VALUES (:ip, :reason, :end, :admin_id)"; + $database->Execute($sql, array("ip"=>$event->ip, "reason"=>$event->reason, "end"=>strtotime($event->end), "admin_id"=>$user->id)); + $database->cache->delete("ip_bans_sorted"); + log_info("ipban", "Banned {$event->ip} because '{$event->reason}' until {$event->end}"); } public function onRemoveIPBan(RemoveIPBanEvent $event) { global $database; - $database->Execute("DELETE FROM bans WHERE id = :id", array("id"=>$event->id)); - $database->cache->delete("ip_bans_sorted"); + $ban = $database->get_row("SELECT * FROM bans WHERE id = :id", array("id"=>$event->id)); + if($ban) { + $database->Execute("DELETE FROM bans WHERE id = :id", array("id"=>$event->id)); + $database->cache->delete("ip_bans_sorted"); + log_info("ipban", "Removed {$ban['ip']}'s ban"); + } } // installer {{{ @@ -211,6 +221,8 @@ class IPBan extends Extension { exit; } } + log_error("ipban", "block() called but no bans matched"); + exit; } // }}} // database {{{ @@ -264,14 +276,6 @@ class IPBan extends Extension { $database->cache->set("ip_bans_sorted", $sorted, 600); return $sorted; } - - private function add_ip_ban($ip, $reason, $end, $user) { - global $database; - $sql = "INSERT INTO bans (ip, reason, end_timestamp, banner_id) VALUES (:ip, :reason, :end, :admin_id)"; - $database->Execute($sql, array("ip"=>$ip, "reason"=>$reason, "end"=>strtotime($end), "admin_id"=>$user->id)); - $database->cache->delete("ip_bans_sorted"); - log_info("ipban", "'$user->name' has banned '$ip' because '$reason' until '$end'"); - } // }}} } ?>