Discover page: when importing public items, alter the item so that it has the characteristics of one that was sourced by the sys channel instead of just being stored under the sys channel uid. This should allow comments and likes to flow upstream if permissions allow and may fix issue #398. Permission may still be denied by the original poster, but without this the comment/like is treated as a forgery and is blocked from transmission.

This commit is contained in:
friendica 2014-04-10 18:06:09 -07:00
parent a49069db4e
commit 9bb7811d74

View file

@ -64,6 +64,25 @@ function externals_run($argv, $argc){
$results = process_delivery(array('hash' => 'undefined'), get_item_elements($message),
array(array('hash' => $sys['xchan_hash'])), false, true);
$total ++;
$z = q("select id from item where mid = '%s' and uid = %d limit 1",
dbesc($message['message_id']),
intval($sys['channel_id'])
);
if($z) {
$flag_bits = ITEM_WALL|ITEM_ORIGIN|ITEM_UPLINK;
// preserve the source
$r = q("update item set source_xchan = owner_xchan where id = %d limit 1",
intval($z[0]['id'])
);
$r = q("update item set item_flags = ( item_flags | %d ), owner_xchan = '%s'
where id = %d limit 1",
intval($flag_bits),
dbesc($sys['xchan_hash']),
intval($z[0]['id'])
);
}
}
logger('externals: import_public_posts: ' . $total . ' messages imported', LOGGER_DEBUG);
}