Prevent prepending implicit mention if replied to item is ours in Protocol\Diaspora

This commit is contained in:
Hypolite Petovan 2019-09-14 17:38:05 -04:00
parent 2f5ea6dcdb
commit 69752fd945

View File

@ -3850,7 +3850,7 @@ class Diaspora
return $result;
}
$toplevel_item = Item::selectFirst(['guid', 'author-link'], ['id' => $item["parent"], 'parent' => $item["parent"]]);
$toplevel_item = Item::selectFirst(['guid', 'author-id', 'author-link'], ['id' => $item["parent"], 'parent' => $item["parent"]]);
if (!DBA::isResult($toplevel_item)) {
Logger::error('Missing parent conversation item', ['parent' => $item["parent"]]);
return false;
@ -3858,12 +3858,18 @@ class Diaspora
$thread_parent_item = $toplevel_item;
if ($item['thr-parent'] != $item['parent-uri']) {
$thread_parent_item = Item::selectFirst(['guid', 'author-link'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]);
$thread_parent_item = Item::selectFirst(['guid', 'author-id', 'author-link'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]);
}
$body = $item["body"];
if ((empty($item['uid']) || !Feature::isEnabled($item['uid'], 'explicit_mentions'))
// The replied to autor mention is prepended for clarity if:
// - Item replied isn't yours
// - Item is public or explicit mentions are disabled
// - Implicit mentions are enabled
if (
$owner['id'] != $thread_parent_item['author-id']
&& (empty($item['uid']) || !Feature::isEnabled($item['uid'], 'explicit_mentions'))
&& !Config::get('system', 'disable_implicit_mentions')
) {
$body = self::prependParentAuthorMention($body, $thread_parent_item['author-link']);