aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/apps.php9
-rw-r--r--include/identity.php12
-rw-r--r--mod/post.php8
3 files changed, 29 insertions, 0 deletions
diff --git a/include/apps.php b/include/apps.php
index bd5c50405..135eaa99a 100644
--- a/include/apps.php
+++ b/include/apps.php
@@ -6,6 +6,7 @@
*/
require_once('include/plugin.php');
+require_once('include/identity.php');
function get_system_apps() {
@@ -93,6 +94,10 @@ function parse_app_description($f) {
if(! local_user())
unset($ret);
break;
+ case 'public_profile':
+ if(! is_public_profile())
+ unset($ret);
+ break;
case 'observer':
if(! $observer)
unset($ret);
@@ -189,6 +194,10 @@ function app_render($papp,$mode = 'view') {
if(! local_user())
return '';
break;
+ case 'public_profile':
+ if(! is_public_profile())
+ return '';
+ break;
case 'observer':
$observer = get_app()->get_observer();
if(! $observer)
diff --git a/include/identity.php b/include/identity.php
index 1cbe43b1e..6c28f23d6 100644
--- a/include/identity.php
+++ b/include/identity.php
@@ -1300,3 +1300,15 @@ function identity_selector() {
return '';
}
+
+
+function is_public_profile() {
+ if(! local_user())
+ return false;
+ if(intval(get_config('system','block_public')))
+ return false;
+ $channel = get_app()->get_channel();
+ if($channel && $channel['channel_r_profile'] == PERMS_PUBLIC)
+ return true;
+ return false;
+}
diff --git a/mod/post.php b/mod/post.php
index 2b85f3f11..bd68baa17 100644
--- a/mod/post.php
+++ b/mod/post.php
@@ -780,6 +780,14 @@ function post_post(&$a) {
$ret['confirm'] = $confirm;
if($u && $u[0]['account_service_class'])
$ret['service_class'] = $u[0]['account_service_class'];
+
+ // Set "do not track" flag if this site or this channel's profile is restricted
+
+ if(intval(get_config('system','block_public')))
+ $ret['DNT'] = true;
+ if(! perm_is_allowed($c[0]['channel_id'],'','view_profile'))
+ $ret['DNT'] = true;
+
json_return_and_die($ret);
}