forked from GNUsocial/gnu-social
BlacklistPlugin accepts config values for patterns
This commit is contained in:
parent
ceb0236dfb
commit
8f3c0efe0c
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user