better IP Ban logging
This commit is contained in:
parent
b0c46b63ca
commit
8c1e495ab7
@ -56,6 +56,7 @@ class IPBan extends Extension {
|
|||||||
else $end = $_POST['end'];
|
else $end = $_POST['end'];
|
||||||
send_event(new AddIPBanEvent($_POST['ip'], $_POST['reason'], $end));
|
send_event(new AddIPBanEvent($_POST['ip'], $_POST['reason'], $end));
|
||||||
|
|
||||||
|
flash_message("Ban for {$_POST['ip']} added");
|
||||||
$page->set_mode("redirect");
|
$page->set_mode("redirect");
|
||||||
$page->set_redirect(make_link("ip_ban/list"));
|
$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()) {
|
else if($event->get_arg(0) == "remove" && $user->check_auth_token()) {
|
||||||
if(isset($_POST['id'])) {
|
if(isset($_POST['id'])) {
|
||||||
send_event(new RemoveIPBanEvent($_POST['id']));
|
send_event(new RemoveIPBanEvent($_POST['id']));
|
||||||
|
|
||||||
|
flash_message("Ban removed");
|
||||||
$page->set_mode("redirect");
|
$page->set_mode("redirect");
|
||||||
$page->set_redirect(make_link("ip_ban/list"));
|
$page->set_redirect(make_link("ip_ban/list"));
|
||||||
}
|
}
|
||||||
@ -86,14 +89,21 @@ class IPBan extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function onAddIPBan(AddIPBanEvent $event) {
|
public function onAddIPBan(AddIPBanEvent $event) {
|
||||||
global $user;
|
global $user, $database;
|
||||||
$this->add_ip_ban($event->ip, $event->reason, $event->end, $user);
|
$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) {
|
public function onRemoveIPBan(RemoveIPBanEvent $event) {
|
||||||
global $database;
|
global $database;
|
||||||
|
$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->Execute("DELETE FROM bans WHERE id = :id", array("id"=>$event->id));
|
||||||
$database->cache->delete("ip_bans_sorted");
|
$database->cache->delete("ip_bans_sorted");
|
||||||
|
log_info("ipban", "Removed {$ban['ip']}'s ban");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// installer {{{
|
// installer {{{
|
||||||
@ -211,6 +221,8 @@ class IPBan extends Extension {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log_error("ipban", "block() called but no bans matched");
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
// }}}
|
// }}}
|
||||||
// database {{{
|
// database {{{
|
||||||
@ -264,14 +276,6 @@ class IPBan extends Extension {
|
|||||||
$database->cache->set("ip_bans_sorted", $sorted, 600);
|
$database->cache->set("ip_bans_sorted", $sorted, 600);
|
||||||
return $sorted;
|
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'");
|
|
||||||
}
|
|
||||||
// }}}
|
// }}}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user