diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php index f0fcddc9a8..5da1aac246 100644 --- a/src/Protocol/Diaspora.php +++ b/src/Protocol/Diaspora.php @@ -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']);