summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2021-06-12 15:50:11 -0500
committerAlex Gleason <alex@alexgleason.me>2021-06-14 19:24:41 -0500
commit6109532083c0eec71dd206b356433cb2c1424260 (patch)
tree0a880bf3af373be25334924f7f8f485e53c3b03d
parenta0f2cba0d872c997cb526f8beefe6e2fa222439c (diff)
Return accepts_newsletter to account owner only
-rw-r--r--lib/pleroma/web/mastodon_api/views/account_view.ex11
-rw-r--r--test/pleroma/web/mastodon_api/views/account_view_test.exs17
2 files changed, 28 insertions, 0 deletions
diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex
index ac25aefdd..c3a0be006 100644
--- a/lib/pleroma/web/mastodon_api/views/account_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/account_view.ex
@@ -292,6 +292,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
|> maybe_put_allow_following_move(user, opts[:for])
|> maybe_put_unread_conversation_count(user, opts[:for])
|> maybe_put_unread_notification_count(user, opts[:for])
+ |> maybe_put_accepts_newsletter(user, opts[:for])
end
defp username_from_nickname(string) when is_binary(string) do
@@ -403,6 +404,16 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
defp maybe_put_unread_notification_count(data, _, _), do: data
+ defp maybe_put_accepts_newsletter(data, %User{id: user_id}, %User{id: user_id} = user) do
+ Kernel.put_in(
+ data,
+ [:pleroma, :accepts_newsletter],
+ user.accepts_newsletter
+ )
+ end
+
+ defp maybe_put_accepts_newsletter(data, _, _), do: data
+
defp image_url(%{"url" => [%{"href" => href} | _]}), do: href
defp image_url(_), do: nil
end
diff --git a/test/pleroma/web/mastodon_api/views/account_view_test.exs b/test/pleroma/web/mastodon_api/views/account_view_test.exs
index 5373a17c3..a0a4d1ac6 100644
--- a/test/pleroma/web/mastodon_api/views/account_view_test.exs
+++ b/test/pleroma/web/mastodon_api/views/account_view_test.exs
@@ -470,6 +470,23 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
end
end
+ test "shows accepts_newsletter only to the account owner" do
+ user = insert(:user)
+ other_user = insert(:user)
+
+ user = User.get_cached_by_ap_id(user.ap_id)
+
+ assert AccountView.render(
+ "show.json",
+ %{user: user, for: other_user}
+ )[:pleroma][:accepts_newsletter] == nil
+
+ assert AccountView.render(
+ "show.json",
+ %{user: user, for: user}
+ )[:pleroma][:accepts_newsletter] == user.accepts_newsletter
+ end
+
describe "follow requests counter" do
test "shows zero when no follow requests are pending" do
user = insert(:user)