Switch protocols to AP when post come in through AP.

This commit is contained in:
lain 2018-02-18 12:04:59 +01:00
parent 77c6c424a6
commit 68752b2047
2 changed files with 12 additions and 2 deletions

View file

@ -427,5 +427,5 @@ def insert_or_update_user(data) do
Repo.insert(cs, on_conflict: :replace_all, conflict_target: :nickname) Repo.insert(cs, on_conflict: :replace_all, conflict_target: :nickname)
end end
def ap_enabled?(%User{info: %{"ap_enabled" => ap}}), do: ap def ap_enabled?(%User{info: info}), do: info["ap_enabled"]
end end

View file

@ -23,13 +23,23 @@ def object(conn, %{"uuid" => uuid}) do
# TODO: Ensure that this inbox is a recipient of the message # TODO: Ensure that this inbox is a recipient of the message
def inbox(%{assigns: %{valid_signature: true}} = conn, params) do def inbox(%{assigns: %{valid_signature: true}} = conn, params) do
# File.write("/tmp/incoming.json", Poison.encode!(params)) # File.write("/tmp/incoming.json", Poison.encode!(params))
with {:ok, activity} <- Transmogrifier.handle_incoming(params) do with {:ok, _user} <- ap_enabled_actor(params["actor"]),
{:ok, activity} <- Transmogrifier.handle_incoming(params) do
json(conn, "ok") json(conn, "ok")
else else
e -> IO.inspect(e) e -> IO.inspect(e)
end end
end end
def ap_enabled_actor(id) do
user = User.get_by_ap_id(id)
if User.ap_enabled?(user) do
{:ok, user}
else
ActivityPub.make_user_from_ap_id(id)
end
end
def errors(conn, _e) do def errors(conn, _e) do
conn conn
|> put_status(500) |> put_status(500)