Merge branch 'master' of https://github.com/friendica/red
This commit is contained in:
commit
b019cbb88a
@ -68,13 +68,31 @@ function collect_recipients($item,&$private_envelope) {
|
|||||||
$private_envelope = false;
|
$private_envelope = false;
|
||||||
|
|
||||||
if(array_key_exists('public_policy',$item) && $item['public_policy'] !== 'self') {
|
if(array_key_exists('public_policy',$item) && $item['public_policy'] !== 'self') {
|
||||||
$r = q("select abook_xchan from abook where abook_channel = %d and not (abook_flags & %d) ",
|
$r = q("select abook_xchan, xchan_network from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and not (abook_flags & %d) ",
|
||||||
intval($item['uid']),
|
intval($item['uid']),
|
||||||
intval(ABOOK_FLAG_SELF|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED)
|
intval(ABOOK_FLAG_SELF|ABOOK_FLAG_PENDING|ABOOK_FLAG_ARCHIVED)
|
||||||
);
|
);
|
||||||
if($r) {
|
if($r) {
|
||||||
|
|
||||||
|
// filter out restrictive public_policy settings from remote networks
|
||||||
|
// which don't have this concept and will treat them as public.
|
||||||
|
|
||||||
|
$policy = substr($item['public_policy'],0,3);
|
||||||
foreach($r as $rr) {
|
foreach($r as $rr) {
|
||||||
|
switch($policy) {
|
||||||
|
case 'net':
|
||||||
|
case 'aut':
|
||||||
|
case 'sit':
|
||||||
|
case 'any':
|
||||||
|
case 'con':
|
||||||
|
if($rr['xchan_network'] != 'zot')
|
||||||
|
break;
|
||||||
|
case 'pub':
|
||||||
|
case '':
|
||||||
|
default:
|
||||||
$recipients[] = $rr['abook_xchan'];
|
$recipients[] = $rr['abook_xchan'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user