diff options
Diffstat (limited to 'include')
-rwxr-xr-x | include/items.php | 7 | ||||
-rw-r--r-- | include/zot.php | 14 |
2 files changed, 16 insertions, 5 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'); |