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.
This commit is contained in:
Brion Vibber 2010-04-23 07:17:52 -07:00
parent 67b8b1334f
commit 390a2a8624
2 changed files with 16 additions and 17 deletions

View File

@ -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;
}
}

View File

@ -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
*