From 2cff122d6ffcd47e42593d22c1c8d19f45ee91ef Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 6 Aug 2014 21:16:24 -0700 Subject: public scope delivery issues --- include/items.php | 7 +++++-- include/zot.php | 14 +++++++++++--- mod/item.php | 4 ++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/include/items.php b/include/items.php index aa3679e25..08c814e10 100755 --- a/include/items.php +++ b/include/items.php @@ -903,8 +903,7 @@ function encode_item($item) { if($y = encode_item_flags($item)) $x['flags'] = $y; - if($scope != 'public') - $x['public_scope'] = $scope; + $x['public_scope'] = $scope; if($item['item_flags'] & ITEM_NOCOMMENT) $x['comment_scope'] = 'none'; @@ -2453,6 +2452,8 @@ function tag_deliver($uid,$item_id) { $private = (($u[0]['channel_allow_cid'] || $u[0]['channel_allow_gid'] || $u[0]['channel_deny_cid'] || $u[0]['channel_deny_gid']) ? 1 : 0); +//FIXME - add check for public_policy + $flag_bits = ITEM_WALL|ITEM_ORIGIN; // maintain the original source, which will be the original item owner and was stored in source_xchan @@ -2593,6 +2594,8 @@ function tag_deliver($uid,$item_id) { $private = (($u[0]['channel_allow_cid'] || $u[0]['channel_allow_gid'] || $u[0]['channel_deny_cid'] || $u[0]['channel_deny_gid']) ? 1 : 0); +// FIXME set public_policy and recheck private + $flag_bits = ITEM_WALL|ITEM_ORIGIN|ITEM_UPLINK; // preserve the source diff --git a/include/zot.php b/include/zot.php index 971f91a3c..1e38b8b49 100644 --- a/include/zot.php +++ b/include/zot.php @@ -1200,6 +1200,12 @@ function zot_import($arr, $sender_url) { continue; } + // It's a specifically targetted post. If we were sent a public_scope hint (likely), + // get rid of it so that it doesn't get stored and cause trouble. + + if(array_key_exists('message',$i) && array_key_exists('public_scope',$i['message'])) + unset($i['message']['public_scope']); + $deliveries = $r; // We found somebody on this site that's in the recipient list. @@ -1207,9 +1213,11 @@ function zot_import($arr, $sender_url) { } else { if(($i['message']) && (array_key_exists('flags',$i['message'])) && (in_array('private',$i['message']['flags']))) { - // This should not happen but until we can stop it... - logger('private message was delivered with no recipients.'); - continue; + if(array_key_exists('public_scope',$i['message']) && $i['message']['public_scope'] === 'public') { + // This should not happen but until we can stop it... + logger('private message was delivered with no recipients.'); + continue; + } } logger('public post'); diff --git a/mod/item.php b/mod/item.php index 01c486e5c..50bc53d9f 100644 --- a/mod/item.php +++ b/mod/item.php @@ -275,14 +275,14 @@ function item_post(&$a) { $str_contact_allow = $orig_post['allow_cid']; $str_group_deny = $orig_post['deny_gid']; $str_contact_deny = $orig_post['deny_cid']; - $public_scope = $orig_post['public_scope']; + $public_policy = $orig_post['public_policy']; } if((strlen($str_group_allow)) || strlen($str_contact_allow) || strlen($str_group_deny) || strlen($str_contact_deny) - || strlen($public_scope)) { + || strlen($public_policy)) { $private = 1; } -- cgit v1.2.3