summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael <savetheinternet@tinyboard.org>2013-06-17 09:54:29 -0700
committerMichael <savetheinternet@tinyboard.org>2013-06-17 09:54:29 -0700
commit2df2b8ba4d28098f29f27e66b450803085ecbb4b (patch)
tree5cec1bc1a16728d31f4460b59e041405afa69b0e
parent81b3eec4e0ebe13158a46f70df6275e48fe6d834 (diff)
parent83401b3a68b4031b4e3c33230acf0d99df7e45fe (diff)
Merge pull request #109 from undido/banlistpatch
Banlistpatch
-rw-r--r--inc/config.php4
-rw-r--r--inc/mod/pages.php17
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']);
}