BlacklistPlugin accepts config values for patterns

This commit is contained in:
Evan Prodromou 2010-02-06 15:54:24 +01:00
parent ceb0236dfb
commit 8f3c0efe0c

View File

@ -48,6 +48,33 @@ class BlacklistPlugin extends Plugin
public $nicknames = array(); public $nicknames = array();
public $urls = array(); public $urls = array();
private $_nicknamePatterns = array();
private $_urlPatterns = array();
function initialize()
{
$this->_nicknamePatterns = array_merge($this->nicknames,
$this->_configArray('blacklist', 'nicknames'));
$this->_urlPatterns = array_merge($this->urls,
$this->_configArray('blacklist', 'urls'));
}
function _configArray($section, $setting)
{
$config = common_config($section, $setting);
if (empty($config)) {
return array();
} else if (is_array($config)) {
return $config;
} else if (is_string($config)) {
return explode("\t", $config);
} else {
throw new Exception("Unknown data type for config $section + $setting");
}
}
/** /**
* Hook registration to prevent blacklisted homepages or nicknames * Hook registration to prevent blacklisted homepages or nicknames
* *
@ -173,7 +200,7 @@ class BlacklistPlugin extends Plugin
private function _checkUrl($url) private function _checkUrl($url)
{ {
foreach ($this->urls as $pattern) { foreach ($this->_urlPatterns as $pattern) {
if (preg_match("/$pattern/", $url)) { if (preg_match("/$pattern/", $url)) {
return false; return false;
} }
@ -194,7 +221,7 @@ class BlacklistPlugin extends Plugin
private function _checkNickname($nickname) private function _checkNickname($nickname)
{ {
foreach ($this->nicknames as $pattern) { foreach ($this->_nicknamePatterns as $pattern) {
if (preg_match("/$pattern/", $nickname)) { if (preg_match("/$pattern/", $nickname)) {
return false; return false;
} }