diff options
author | tusooa <tusooa@kazv.moe> | 2023-07-10 18:27:23 -0400 |
---|---|---|
committer | tusooa <tusooa@kazv.moe> | 2023-09-13 19:19:05 -0400 |
commit | 9bcec87aba5ce4de6b61b5a95d6832da9dfa0fd8 (patch) | |
tree | 4b671dd9a5029ca538d203166029a726fa08f580 /lib | |
parent | b0a7e795e799d3c8d750ab909657ec7b3d0bfd58 (diff) | |
download | pleroma-9bcec87aba5ce4de6b61b5a95d6832da9dfa0fd8.tar.gz pleroma-9bcec87aba5ce4de6b61b5a95d6832da9dfa0fd8.zip |
Allow local quote and private self-quote
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/common_api/activity_draft.ex | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/pleroma/web/common_api/activity_draft.ex b/lib/pleroma/web/common_api/activity_draft.ex index d4875765c..32921aa5a 100644 --- a/lib/pleroma/web/common_api/activity_draft.ex +++ b/lib/pleroma/web/common_api/activity_draft.ex @@ -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")) |