diff options
author | redmatrix <redmatrix@redmatrix.me> | 2015-11-29 20:26:00 -0800 |
---|---|---|
committer | redmatrix <redmatrix@redmatrix.me> | 2015-11-29 20:26:00 -0800 |
commit | 650f882265cc0256fa85046baacca9dc6db56d24 (patch) | |
tree | 1b338dcd0a50279c6b78221b2f6b1f6dd66f088c | |
parent | a2747403f23b0a67b8b154b2526ca7f76b5d844b (diff) | |
download | volse-hubzilla-650f882265cc0256fa85046baacca9dc6db56d24.tar.gz volse-hubzilla-650f882265cc0256fa85046baacca9dc6db56d24.tar.bz2 volse-hubzilla-650f882265cc0256fa85046baacca9dc6db56d24.zip |
generalise the site black|white allow lists, also add a channel black|white list for future use
-rw-r--r-- | include/externals.php | 16 | ||||
-rw-r--r-- | include/network.php | 57 | ||||
-rw-r--r-- | include/zot.php | 14 | ||||
-rwxr-xr-x | mod/setup.php | 2 |
4 files changed, 63 insertions, 26 deletions
diff --git a/include/externals.php b/include/externals.php index 4ac9754e2..3a3a32420 100644 --- a/include/externals.php +++ b/include/externals.php @@ -40,19 +40,11 @@ function externals_run($argv, $argc){ $url = $r[0]['site_url']; } - // Note: blacklisted sites must be stored in the config as an array. - // No simple way to turn this into a personal config because we have no identity here. - // For that we probably need a variant of superblock. - $blacklisted = false; - $bl1 = get_config('system','blacklisted_sites'); - if(is_array($bl1) && $bl1) { - foreach($bl1 as $bl) { - if($bl && strpos($url,$bl) !== false) { - $blacklisted = true; - break; - } - } + + if(! check_siteallowed($url)) { + logger('blacklisted site: ' . $url); + $blacklisted = true; } $attempts ++; diff --git a/include/network.php b/include/network.php index 61948a1cf..e906fc7cb 100644 --- a/include/network.php +++ b/include/network.php @@ -1812,4 +1812,59 @@ function get_site_info() { 'hide_in_statistics' => $hide_in_statistics ); return $data; -}
\ No newline at end of file +} + + + +function check_siteallowed($url) { + + $retvalue = true; + + $bl1 = get_config('system','whitelisted_sites'); + if(is_array($bl1) && $bl1) { + foreach($bl1 as $bl) { + if($bl1 === '*') + $retvalue = true; + if($bl && strpos($url,$bl) !== false) + return true; + } + } + $bl1 = get_config('system','blacklisted_sites'); + if(is_array($bl1) && $bl1) { + foreach($bl1 as $bl) { + if($bl1 === '*') + $retvalue = false; + if($bl && strpos($url,$bl) !== false) { + return false; + } + } + } + return $retvalue; +} + +function check_channelallowed($hash) { + + $retvalue = true; + + $bl1 = get_config('system','whitelisted_channels'); + if(is_array($bl1) && $bl1) { + foreach($bl1 as $bl) { + if($bl1 === '*') + $retvalue = true; + if($bl && strpos($hash,$bl) !== false) + return true; + } + } + $bl1 = get_config('system','blacklisted_channels'); + if(is_array($bl1) && $bl1) { + foreach($bl1 as $bl) { + if($bl1 === '*') + $retvalue = false; + if($bl && strpos($hash,$bl) !== false) { + return false; + } + } + } + return $retvalue; +} + diff --git a/include/zot.php b/include/zot.php index e575f3d05..6764072aa 100644 --- a/include/zot.php +++ b/include/zot.php @@ -554,18 +554,8 @@ function zot_gethub($arr,$multiple = false) { if($arr['guid'] && $arr['guid_sig'] && $arr['url'] && $arr['url_sig']) { - $blacklisted = false; - $bl1 = get_config('system','blacklisted_sites'); - if(is_array($bl1) && $bl1) { - foreach($bl1 as $bl) { - if($bl && strpos($arr['url'],$bl) !== false) { - $blacklisted = true; - break; - } - } - } - if($blacklisted) { - logger('zot_gethub: blacklisted site: ' . $arr['url']); + if(! check_siteallowed($arr['url'])) { + logger('blacklisted site: ' . $arr['url']); return null; } diff --git a/mod/setup.php b/mod/setup.php index e5ac25965..5c9e988d9 100755 --- a/mod/setup.php +++ b/mod/setup.php @@ -14,7 +14,7 @@ $install_wizard_pass = 1; * * @param[in,out] App &$a */ -function setup_init(&$a){ +function setup_init(&$a) { // Ensure that if somebody hasn't read the install documentation and doesn't have all // the required modules or has a totally borked shared hosting provider and they can't |