aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorredmatrix <redmatrix@redmatrix.me>2015-11-29 20:26:00 -0800
committerredmatrix <redmatrix@redmatrix.me>2015-11-29 20:26:00 -0800
commit650f882265cc0256fa85046baacca9dc6db56d24 (patch)
tree1b338dcd0a50279c6b78221b2f6b1f6dd66f088c /include
parenta2747403f23b0a67b8b154b2526ca7f76b5d844b (diff)
downloadvolse-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
Diffstat (limited to 'include')
-rw-r--r--include/externals.php16
-rw-r--r--include/network.php57
-rw-r--r--include/zot.php14
3 files changed, 62 insertions, 25 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;
}