Fix trying to create signatures for remote actors
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
parent
d4cde716d4
commit
d268a16c4f
@ -257,11 +257,7 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
|
||||
{:member, true} <-
|
||||
{:member, Actors.is_member?(object_data.creator_id, object_data.actor_id)},
|
||||
{:ok, %Activity{} = activity, %Resource{} = resource} <-
|
||||
ActivityPub.create(:resource, object_data, false),
|
||||
%Actor{type: :Group, id: group_id} = group <-
|
||||
Actors.get_group_by_members_url(group_url),
|
||||
announce_id <- "#{object_url}/announces/#{group_id}",
|
||||
{:ok, _activity, _resource} <- ActivityPub.announce(group, object, announce_id) do
|
||||
ActivityPub.create(:resource, object_data, false) do
|
||||
{:ok, activity, resource}
|
||||
else
|
||||
{:existing_resource, %Resource{} = resource} ->
|
||||
|
@ -93,8 +93,8 @@ defmodule Mobilizon.Federation.HTTPSignatures.Signature do
|
||||
end
|
||||
end
|
||||
|
||||
def sign(%Actor{keys: keys} = actor, headers) do
|
||||
Logger.debug("Signing on behalf of #{actor.url}")
|
||||
def sign(%Actor{domain: domain, keys: keys} = actor, headers) when is_nil(domain) do
|
||||
Logger.debug("Signing a payload on behalf of #{actor.url}")
|
||||
Logger.debug("headers")
|
||||
Logger.debug(inspect(headers))
|
||||
|
||||
@ -103,6 +103,11 @@ defmodule Mobilizon.Federation.HTTPSignatures.Signature do
|
||||
end
|
||||
end
|
||||
|
||||
def sign(%Actor{url: url}, _) do
|
||||
Logger.error("Can't do a signature on remote actor #{url}")
|
||||
raise ArgumentError, message: "Can't do a signature on remote actor #{url}"
|
||||
end
|
||||
|
||||
def generate_date_header, do: generate_date_header(NaiveDateTime.utc_now())
|
||||
|
||||
def generate_date_header(%NaiveDateTime{} = date) do
|
||||
|
@ -966,7 +966,9 @@ defmodule Mobilizon.Actors do
|
||||
# Check if followed has blocked follower
|
||||
{:already_following, nil} <- {:already_following, is_following(follower, followed)} do
|
||||
Logger.info(
|
||||
"Making #{follower.preferred_username} follow #{followed.preferred_username} " <>
|
||||
"Making #{Actor.preferred_username_and_domain(follower)} follow #{
|
||||
Actor.preferred_username_and_domain(followed)
|
||||
} " <>
|
||||
"(approved: #{approved})"
|
||||
)
|
||||
|
||||
@ -979,11 +981,13 @@ defmodule Mobilizon.Actors do
|
||||
else
|
||||
{:already_following, %Follower{}} ->
|
||||
{:error, :already_following,
|
||||
"Could not follow actor: you are already following #{followed.preferred_username}"}
|
||||
"Could not follow actor: you are already following #{
|
||||
Actor.preferred_username_and_domain(followed)
|
||||
}"}
|
||||
|
||||
{:suspended, _} ->
|
||||
{:error, :suspended,
|
||||
"Could not follow actor: #{followed.preferred_username} has been suspended"}
|
||||
"Could not follow actor: #{Actor.preferred_username_and_domain(followed)} has been suspended"}
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user