only check replyTo visibility during permission checks IF status is local

This commit is contained in:
kim 2024-03-14 16:42:58 +00:00
parent 92bf1f779b
commit 8b38c5d222

View file

@ -621,19 +621,23 @@ func (d *Dereferencer) isPermittedStatus(
return onFail()
}
// Check visibility of inReplyTo to status author.
permitted, err = d.visibility.StatusVisible(ctx,
status.Account,
status.InReplyTo,
)
if err != nil {
return false, gtserror.Newf("error checking in-reply-to visibility: %w", err)
// Default to true
permitted = true
if *status.InReplyTo.Local {
// Check visibility of inReplyTo to status author.
permitted, err = d.visibility.StatusVisible(ctx,
status.Account,
status.InReplyTo,
)
if err != nil {
return false, gtserror.Newf("error checking in-reply-to visibility: %w", err)
}
}
if permitted &&
*status.InReplyTo.Replyable {
// This status is visible AND
// replyable, in this economy?!
// Status is reply-able to.
return true, nil
}