Browse Source

Ensure self-announces do not widen the audience of the original post

object-id-column
Thibaut Girka 4 years ago
parent
commit
fe538973dd
2 changed files with 4 additions and 3 deletions
  1. +1
    -1
      lib/pleroma/web/activity_pub/activity_pub.ex
  2. +3
    -2
      lib/pleroma/web/activity_pub/visibility.ex

+ 1
- 1
lib/pleroma/web/activity_pub/activity_pub.ex View File

@@ -346,7 +346,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
local \\ true,
public \\ true
) do
with true <- is_announceable?(object, user),
with true <- is_announceable?(object, user, public),
announce_data <- make_announce_data(user, object, activity_id, public),
{:ok, activity} <- insert(announce_data, local),
{:ok, object} <- add_announce_to_object(activity, object),


+ 3
- 2
lib/pleroma/web/activity_pub/visibility.ex View File

@@ -27,8 +27,9 @@ defmodule Pleroma.Web.ActivityPub.Visibility do
end
end

def is_announceable?(activity, user) do
is_public?(activity) || activity.data["actor"] == user.ap_id
def is_announceable?(activity, user, public \\ true) do
is_public?(activity) ||
(!public && is_private?(activity) && activity.data["actor"] == user.ap_id)
end

def is_direct?(%Activity{data: %{"directMessage" => true}}), do: true


Loading…
Cancel
Save