generalise the site black|white allow lists, also add a channel black|white list for future use
This commit is contained in:
parent
a2747403f2
commit
650f882265
@ -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 ++;
|
||||
|
@ -1812,4 +1812,59 @@ function get_site_info() {
|
||||
'hide_in_statistics' => $hide_in_statistics
|
||||
);
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user