summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-04-23 07:17:52 -0700
committerBrion Vibber <brion@pobox.com>2010-04-23 07:17:52 -0700
commit390a2a8624b71be7d598b945452fc6e0000f3df5 (patch)
tree8c1f107354abbae927f49406ebc5f50e46bb8cc3
parent67b8b1334fc53fb06f1a751e534533e30b7cfd01 (diff)
Fix for Blacklist plugin: was saving an empty entry if blacklist was empty, which would match *all* possible nickname registrations, preventing all registration on mozilla.status.net.
Now saving only non-empty lines, and only matching non-empty lines so we don't fail if we still have a bogus entry.
-rw-r--r--plugins/Blacklist/BlacklistPlugin.php4
-rw-r--r--plugins/Blacklist/blacklistadminpanel.php29
2 files changed, 16 insertions, 17 deletions
diff --git a/plugins/Blacklist/BlacklistPlugin.php b/plugins/Blacklist/BlacklistPlugin.php
index adc4d9d7e..63bffe2c6 100644
--- a/plugins/Blacklist/BlacklistPlugin.php
+++ b/plugins/Blacklist/BlacklistPlugin.php
@@ -262,7 +262,7 @@ class BlacklistPlugin extends Plugin
$patterns = $this->_getUrlPatterns();
foreach ($patterns as $pattern) {
- if (preg_match("/$pattern/", $url)) {
+ if ($pattern != '' && preg_match("/$pattern/", $url)) {
return false;
}
}
@@ -285,7 +285,7 @@ class BlacklistPlugin extends Plugin
$patterns = $this->_getNicknamePatterns();
foreach ($patterns as $pattern) {
- if (preg_match("/$pattern/", $nickname)) {
+ if ($pattern != '' && preg_match("/$pattern/", $nickname)) {
return false;
}
}
diff --git a/plugins/Blacklist/blacklistadminpanel.php b/plugins/Blacklist/blacklistadminpanel.php
index b996aba8d..23c503cd8 100644
--- a/plugins/Blacklist/blacklistadminpanel.php
+++ b/plugins/Blacklist/blacklistadminpanel.php
@@ -88,28 +88,27 @@ class BlacklistadminpanelAction extends AdminPanelAction
function saveSettings()
{
- $nickPatterns = array();
-
- $rawNickPatterns = explode("\n", $this->trimmed('blacklist-nicknames'));
-
- foreach ($rawNickPatterns as $raw) {
- $nickPatterns[] = trim($raw);
- }
-
+ $nickPatterns = $this->splitPatterns($this->trimmed('blacklist-nicknames'));
Nickname_blacklist::saveNew($nickPatterns);
- $rawUrlPatterns = explode("\n", $this->trimmed('blacklist-urls'));
- $urlPatterns = array();
-
- foreach ($rawUrlPatterns as $raw) {
- $urlPatterns[] = trim($raw);
- }
-
+ $urlPatterns = $this->splitPatterns($this->trimmed('url-nicknames'));
Homepage_blacklist::saveNew($urlPatterns);
return;
}
+ protected function splitPatterns($text)
+ {
+ $patterns = array();
+ foreach (explode("\n", $text) as $raw) {
+ $trimmed = trim($raw);
+ if ($trimmed != '') {
+ $patterns[] = $trimmed;
+ }
+ }
+ return $patterns;
+ }
+
/**
* Validate the values
*