summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2021-02-09 18:07:15 -0600
committerMark Felder <feld@feld.me>2021-02-09 18:07:15 -0600
commit3dc7e89c54ea3d2bf7e81d99ac4efac37cd00e6c (patch)
tree6a1cf8cc12adbdbac85950c575acfd0f66ea2e08
parentde8b8e9cf15e5d0d084fbcdf73f5d637617c7744 (diff)
Ensure we capture the application details into the object
-rw-r--r--lib/pleroma/web/common_api/activity_draft.ex1
-rw-r--r--lib/pleroma/web/mastodon_api/controllers/status_controller.ex20
2 files changed, 17 insertions, 4 deletions
diff --git a/lib/pleroma/web/common_api/activity_draft.ex b/lib/pleroma/web/common_api/activity_draft.ex
index fb059c27c..d7dcdad90 100644
--- a/lib/pleroma/web/common_api/activity_draft.ex
+++ b/lib/pleroma/web/common_api/activity_draft.ex
@@ -190,6 +190,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
Utils.make_note_data(draft)
|> Map.put("emoji", emoji)
|> Map.put("source", draft.status)
+ |> Map.put("application", draft.params[:application])
%__MODULE__{draft | object: object}
end
diff --git a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex
index 4cf2ee35c..47a5bbd60 100644
--- a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex
+++ b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex
@@ -132,13 +132,15 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
# Creates a scheduled status when `scheduled_at` param is present and it's far enough
def create(
%{
- assigns: %{user: user},
+ assigns: %{user: user, token: %{app_id: app_id}},
body_params: %{status: _, scheduled_at: scheduled_at} = params
} = conn,
_
)
when not is_nil(scheduled_at) do
- params = Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
+ params =
+ Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
+ |> add_application(app_id)
attrs = %{
params: Map.new(params, fn {key, value} -> {to_string(key), value} end),
@@ -161,8 +163,14 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
end
# Creates a regular status
- def create(%{assigns: %{user: user}, body_params: %{status: _} = params} = conn, _) do
- params = Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
+ def create(
+ %{assigns: %{user: user, token: %{app_id: app_id}}, body_params: %{status: _} = params} =
+ conn,
+ _
+ ) do
+ params =
+ Map.put(params, :in_reply_to_status_id, params[:in_reply_to_id])
+ |> add_application(app_id)
with {:ok, activity} <- CommonAPI.post(user, params) do
try_render(conn, "show.json",
@@ -414,4 +422,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
as: :activity
)
end
+
+ defp add_application(params, app_id) do
+ params |> Map.put(:application, Pleroma.Web.OAuth.App.get_app_by_id(app_id))
+ end
end