diff options
| author | Michael <savetheinternet@tinyboard.org> | 2013-06-17 09:54:29 -0700 |
|---|---|---|
| committer | Michael <savetheinternet@tinyboard.org> | 2013-06-17 09:54:29 -0700 |
| commit | 2df2b8ba4d28098f29f27e66b450803085ecbb4b (patch) | |
| tree | 5cec1bc1a16728d31f4460b59e041405afa69b0e | |
| parent | 81b3eec4e0ebe13158a46f70df6275e48fe6d834 (diff) | |
| parent | 83401b3a68b4031b4e3c33230acf0d99df7e45fe (diff) | |
Merge pull request #109 from undido/banlistpatch
Banlistpatch
| -rw-r--r-- | inc/config.php | 4 | ||||
| -rw-r--r-- | inc/mod/pages.php | 17 |
2 files changed, 20 insertions, 1 deletions
diff --git a/inc/config.php b/inc/config.php index 8eed50fa..900d540a 100644 --- a/inc/config.php +++ b/inc/config.php @@ -686,6 +686,7 @@ $config['error']['captcha'] = _('You seem to have mistyped the verification.'); // Moderator errors + $config['error']['toomanyunban'] = _('You are only allowed to unban %s users at a time. You tried to unban %u users.'); $config['error']['invalid'] = _('Invalid username and/or password.'); $config['error']['notamod'] = _('You are not a mod…'); $config['error']['invalidafter'] = _('Invalid username and/or password. Your user may have been deleted or changed.'); @@ -768,6 +769,9 @@ * Mod settings * ==================== */ + + // Limit how many bans can be removed via the ban list. (Set too -1 to remove limit.) + $config['mod']['unban_limit'] = 5; // Whether or not to lock moderator sessions to the IP address that was logged in with. $config['mod']['lock_ip'] = true; diff --git a/inc/mod/pages.php b/inc/mod/pages.php index 5d736a1a..6a780474 100644 --- a/inc/mod/pages.php +++ b/inc/mod/pages.php @@ -651,7 +651,8 @@ function mod_bans($page_no = 1) { if (preg_match('/^ban_(\d+)$/', $name, $match)) $unban[] = $match[1]; } - + if (isset($config['mod']['unban_limit'])){ + if (count($unban) <= $config['mod']['unban_limit'] || $config['mod']['unban_limit'] == -1){ if (!empty($unban)) { query('DELETE FROM `bans` WHERE `id` = ' . implode(' OR `id` = ', $unban)) or error(db_error()); @@ -659,7 +660,21 @@ function mod_bans($page_no = 1) { modLog("Removed ban #{$id}"); } } + } else { + error(sprintf($config['error']['toomanyunban'], $config['mod']['unban_limit'], count($unban) )); + } + + } else { + + if (!empty($unban)) { + query('DELETE FROM `bans` WHERE `id` = ' . implode(' OR `id` = ', $unban)) or error(db_error()); + + foreach ($unban as $id) { + modLog("Removed ban #{$id}"); + } + } + } header('Location: ?/bans', true, $config['redirect_http']); } |
