aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <redmatrix@redmatrix.me>2015-12-06 20:45:21 -0800
committerredmatrix <redmatrix@redmatrix.me>2015-12-06 20:45:21 -0800
commitf7f0d2b265b764e1a7bb032473108ca2cfaeb4a5 (patch)
treeebedb98cfdc4c8bd5d8dffe9953280c338558db7
parent2d799f2c114bbd540a6b2f260e512ad5fcf1db5c (diff)
downloadvolse-hubzilla-f7f0d2b265b764e1a7bb032473108ca2cfaeb4a5.tar.gz
volse-hubzilla-f7f0d2b265b764e1a7bb032473108ca2cfaeb4a5.tar.bz2
volse-hubzilla-f7f0d2b265b764e1a7bb032473108ca2cfaeb4a5.zip
provide plugin hooks for blacklist checking functions.
-rw-r--r--doc/hook/check_channelallowed.bb11
-rw-r--r--doc/hook/check_siteallowed.bb10
-rw-r--r--doc/hooklist.bb6
-rw-r--r--include/network.php13
4 files changed, 40 insertions, 0 deletions
diff --git a/doc/hook/check_channelallowed.bb b/doc/hook/check_channelallowed.bb
new file mode 100644
index 000000000..e7559c92f
--- /dev/null
+++ b/doc/hook/check_channelallowed.bb
@@ -0,0 +1,11 @@
+[h2]check_channelallowed[/h2]
+
+Called when checking the channel (xchan) black and white lists to see if a channel is blocked.
+
+Hook data
+
+ array('hash' => xchan_hash of xchan to check);
+
+ create and set array element 'allowed' to true or false to override the system checks
+
+
diff --git a/doc/hook/check_siteallowed.bb b/doc/hook/check_siteallowed.bb
new file mode 100644
index 000000000..28134cbd2
--- /dev/null
+++ b/doc/hook/check_siteallowed.bb
@@ -0,0 +1,10 @@
+[h2]check_siteallowed[/h2]
+
+Called when checking the site black and white lists to see if a site is blocked.
+
+Hook data
+
+ array('url' => URL of site to check);
+
+ create and set array element 'allowed' to true or false to override the system checks
+
diff --git a/doc/hooklist.bb b/doc/hooklist.bb
index 45a4861d9..9172628a0 100644
--- a/doc/hooklist.bb
+++ b/doc/hooklist.bb
@@ -82,6 +82,12 @@ Hooks allow plugins/addons to "hook into" the code at many points and alter the
[zrl=[baseurl]/help/hook/check_account_password]check_account_password[/zrl]
Used to provide policy control over account passwords (minimum length, character set inclusion, etc.)
+[zrl=[baseurl]/help/hook/check_channelallowed]check_channelallowed[/zrl]
+ Used to over-ride or bypass the channel black/white block lists
+
+[zrl=[baseurl]/help/hook/check_siteallowed]check_siteallowed[/zrl]
+ Used to over-ride or bypass the site black/white block lists
+
[zrl=[baseurl]/help/hook/connect_premium]connect_premium[/zrl]
Called when connecting to a premium channel
diff --git a/include/network.php b/include/network.php
index f386afc8e..5895d302b 100644
--- a/include/network.php
+++ b/include/network.php
@@ -1822,6 +1822,13 @@ function check_siteallowed($url) {
$retvalue = true;
+
+ $arr = array('url' => $url);
+ call_hooks('check_siteallowed',$arr);
+
+ if(array_key_exists('allowed',$arr))
+ return $arr['allowed'];
+
$bl1 = get_config('system','whitelisted_sites');
if(is_array($bl1) && $bl1) {
foreach($bl1 as $bl) {
@@ -1848,6 +1855,12 @@ function check_channelallowed($hash) {
$retvalue = true;
+ $arr = array('hash' => $hash);
+ call_hooks('check_channelallowed',$arr);
+
+ if(array_key_exists('allowed',$arr))
+ return $arr['allowed'];
+
$bl1 = get_config('system','whitelisted_channels');
if(is_array($bl1) && $bl1) {
foreach($bl1 as $bl) {