projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'pleroma/develop' into feature/disable-account
[akkoma]
/
lib
/
pleroma
/
web
/
activity_pub
/
utils.ex
diff --git
a/lib/pleroma/web/activity_pub/utils.ex
b/lib/pleroma/web/activity_pub/utils.ex
index 0b53f71c3acc25471a9c531a0e9edfdb138e9475..581b9d1ab3e0f232b4e35e954dd5dbeffb4999a6 100644
(file)
--- a/
lib/pleroma/web/activity_pub/utils.ex
+++ b/
lib/pleroma/web/activity_pub/utils.ex
@@
-52,7
+52,7
@@
defmodule Pleroma.Web.ActivityPub.Utils do
defp recipient_in_collection(ap_id, coll) when is_list(coll), do: ap_id in coll
defp recipient_in_collection(_, _), do: false
defp recipient_in_collection(ap_id, coll) when is_list(coll), do: ap_id in coll
defp recipient_in_collection(_, _), do: false
- def recipient_in_message(
ap_id
, params) do
+ def recipient_in_message(
%User{ap_id: ap_id} = recipient, %User{} = actor
, params) do
cond do
recipient_in_collection(ap_id, params["to"]) ->
true
cond do
recipient_in_collection(ap_id, params["to"]) ->
true
@@
-71,6
+71,11
@@
defmodule Pleroma.Web.ActivityPub.Utils do
!params["to"] && !params["cc"] && !params["bto"] && !params["bcc"] ->
true
!params["to"] && !params["cc"] && !params["bto"] && !params["bcc"] ->
true
+ # if the message is sent from somebody the user is following, then assume it
+ # is addressed to the recipient
+ User.following?(recipient, actor) ->
+ true
+
true ->
false
end
true ->
false
end
@@
-229,14
+234,18
@@
defmodule Pleroma.Web.ActivityPub.Utils do
@doc """
Inserts a full object if it is contained in an activity.
"""
@doc """
Inserts a full object if it is contained in an activity.
"""
- def insert_full_object(%{"object" => %{"type" => type} = object_data})
+ def insert_full_object(%{"object" => %{"type" => type} = object_data}
= map
)
when is_map(object_data) and type in @supported_object_types do
with {:ok, object} <- Object.create(object_data) do
when is_map(object_data) and type in @supported_object_types do
with {:ok, object} <- Object.create(object_data) do
- {:ok, object}
+ map =
+ map
+ |> Map.put("object", object.data["id"])
+
+ {:ok, map, object}
end
end
end
end
- def insert_full_object(
_), do: {:ok
, nil}
+ def insert_full_object(
map), do: {:ok, map
, nil}
def update_object_in_activities(%{data: %{"id" => id}} = object) do
# TODO
def update_object_in_activities(%{data: %{"id" => id}} = object) do
# TODO