Allow local quote and private self-quote

This commit is contained in:
tusooa 2023-07-10 18:27:23 -04:00
commit 9bcec87aba
No known key found for this signature in database
GPG key ID: 42AEC43D48433C51
2 changed files with 21 additions and 2 deletions

View file

@ -167,9 +167,21 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
end
end
defp can_quote?(_draft, _object, visibility) when visibility in ~w(public unlisted local) do
true
end
defp can_quote?(draft, object, "private") do
draft.user.ap_id == object.data["actor"]
end
defp can_quote?(_, _, _) do
false
end
defp quoting_visibility(%{quote_post: %Activity{}} = draft) do
with %Object{} = object <- Object.normalize(draft.quote_post, fetch: false),
visibility when visibility in ~w(public unlisted) <- Visibility.get_visibility(object) do
true <- can_quote?(draft, object, Visibility.get_visibility(object)) do
draft
else
_ -> add_error(draft, dgettext("errors", "Cannot quote private message"))