No implicit mention for top level Diaspora comments

This commit is contained in:
Michael 2021-02-16 07:20:41 +00:00
parent 2ebb720f09
commit 890d1057d2
2 changed files with 5 additions and 4 deletions

View file

@ -881,13 +881,13 @@ class Post
return ''; return '';
} }
$item = PostModel::selectFirst(['author-addr', 'uri-id'], ['id' => $this->getId()]); $item = PostModel::selectFirst(['author-addr', 'uri-id', 'network', 'gravity'], ['id' => $this->getId()]);
if (!DBA::isResult($item) || empty($item['author-addr'])) { if (!DBA::isResult($item) || empty($item['author-addr'])) {
// Should not happen // Should not happen
return ''; return '';
} }
if ($item['author-addr'] != $owner['addr']) { if (($item['author-addr'] != $owner['addr']) && (($item['gravity'] != GRAVITY_PARENT) || !in_array($item['network'], [Protocol::DIASPORA]))) {
$text = '@' . $item['author-addr'] . ' '; $text = '@' . $item['author-addr'] . ' ';
} else { } else {
$text = ''; $text = '';

View file

@ -3599,7 +3599,7 @@ class Diaspora
return $result; return $result;
} }
$toplevel_item = Post::selectFirst(['guid', 'author-id', 'author-link'], ['id' => $item['parent'], 'parent' => $item['parent']]); $toplevel_item = Post::selectFirst(['guid', 'author-id', 'author-link', 'gravity'], ['id' => $item['parent'], 'parent' => $item['parent']]);
if (!DBA::isResult($toplevel_item)) { if (!DBA::isResult($toplevel_item)) {
Logger::error('Missing parent conversation item', ['parent' => $item['parent']]); Logger::error('Missing parent conversation item', ['parent' => $item['parent']]);
return false; return false;
@ -3607,7 +3607,7 @@ class Diaspora
$thread_parent_item = $toplevel_item; $thread_parent_item = $toplevel_item;
if ($item['thr-parent'] != $item['parent-uri']) { if ($item['thr-parent'] != $item['parent-uri']) {
$thread_parent_item = Post::selectFirst(['guid', 'author-id', 'author-link'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]); $thread_parent_item = Post::selectFirst(['guid', 'author-id', 'author-link', 'gravity'], ['uri' => $item['thr-parent'], 'uid' => $item['uid']]);
} }
$body = $item["body"]; $body = $item["body"];
@ -3618,6 +3618,7 @@ class Diaspora
// - Implicit mentions are enabled // - Implicit mentions are enabled
if ( if (
$item['author-id'] != $thread_parent_item['author-id'] $item['author-id'] != $thread_parent_item['author-id']
&& ($thread_parent_item['gravity'] != GRAVITY_PARENT)
&& (empty($item['uid']) || !Feature::isEnabled($item['uid'], 'explicit_mentions')) && (empty($item['uid']) || !Feature::isEnabled($item['uid'], 'explicit_mentions'))
&& !DI::config()->get('system', 'disable_implicit_mentions') && !DI::config()->get('system', 'disable_implicit_mentions')
) { ) {