summaryrefslogtreecommitdiff
path: root/inc/bans.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/bans.php')
-rw-r--r--inc/bans.php24
1 files changed, 15 insertions, 9 deletions
diff --git a/inc/bans.php b/inc/bans.php
index 652d42cc..cf24f097 100644
--- a/inc/bans.php
+++ b/inc/bans.php
@@ -33,7 +33,7 @@ class Bans {
return array(inet_pton($range[0]), inet_pton($range[1]));
}
- private static function parse_time($str) {
+ public static function parse_time($str) {
if (empty($str))
return false;
@@ -137,10 +137,10 @@ class Bans {
while ($ban = $query->fetch(PDO::FETCH_ASSOC)) {
if ($ban['expires'] && ($ban['seen'] || !$config['require_ban_view']) && $ban['expires'] < time()) {
- $query = prepare("DELETE FROM ``bans`` WHERE `id` = :id");
- $query->bindValue(':id', $ban['id'], PDO::PARAM_INT);
- $query->execute() or error(db_error($query));
+ self::delete($ban['id']);
} else {
+ if ($ban['post'])
+ $ban['post'] = json_decode($ban['post'], true);
$ban['mask'] = self::range_to_string(array($ban['ipstart'], $ban['ipend']));
$ban_list[] = $ban;
}
@@ -197,8 +197,8 @@ class Bans {
return true;
}
- static public function new_ban($mask, $reason, $length = false, $board = false, $mod_id = false) {
- global $mod, $pdo;
+ static public function new_ban($mask, $reason, $length = false, $ban_board = false, $mod_id = false, $post = false) {
+ global $mod, $pdo, $board;
if ($mod_id === false) {
$mod_id = isset($mod['id']) ? $mod['id'] : -1;
@@ -207,7 +207,7 @@ class Bans {
$range = self::parse_range($mask);
$mask = self::range_to_string($range);
- $query = prepare("INSERT INTO ``bans`` VALUES (NULL, :ipstart, :ipend, :time, :expires, :board, :mod, :reason, 0, NULL)");
+ $query = prepare("INSERT INTO ``bans`` VALUES (NULL, :ipstart, :ipend, :time, :expires, :board, :mod, :reason, 0, :post)");
$query->bindValue(':ipstart', $range[0]);
if ($range[1] !== false && $range[1] != $range[0])
@@ -236,11 +236,17 @@ class Bans {
$query->bindValue(':expires', null, PDO::PARAM_NULL);
}
- if ($board)
- $query->bindValue(':board', $board);
+ if ($ban_board)
+ $query->bindValue(':board', $ban_board);
else
$query->bindValue(':board', null, PDO::PARAM_NULL);
+ if ($post) {
+ $post['board'] = $board['uri'];
+ $query->bindValue(':post', json_encode($post));
+ } else
+ $query->bindValue(':post', null, PDO::PARAM_NULL);
+
$query->execute() or error(db_error($query));
if (isset($mod['id']) && $mod['id'] == $mod_id) {