diff options
4 files changed, 24 insertions, 6 deletions
| diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 9d3f526c9..09e6b0b59 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -873,7 +873,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do            },            compose: %{              me: "#{user.id}", -            default_privacy: "public", +            default_privacy: user.info["default_scope"] || "public",              default_sensitive: false            },            media_attachments: %{ diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index 8f5b3c786..65e67396b 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -431,6 +431,19 @@ defmodule Pleroma.Web.TwitterAPI.Controller do          user        end +    user = +      if default_scope = params["default_scope"] do +        with new_info <- Map.put(user.info, "default_scope", default_scope), +             change <- User.info_changeset(user, %{info: new_info}), +             {:ok, user} <- User.update_and_set_cache(change) do +          user +        else +          _e -> user +        end +      else +        user +      end +      with changeset <- User.update_changeset(user, params),           {:ok, user} <- User.update_and_set_cache(changeset) do        CommonAPI.update(user) diff --git a/lib/pleroma/web/twitter_api/views/user_view.ex b/lib/pleroma/web/twitter_api/views/user_view.ex index 711008973..9c8460378 100644 --- a/lib/pleroma/web/twitter_api/views/user_view.ex +++ b/lib/pleroma/web/twitter_api/views/user_view.ex @@ -52,7 +52,8 @@ defmodule Pleroma.Web.TwitterAPI.UserView do        "cover_photo" => User.banner_url(user) |> MediaProxy.url(),        "background_image" => image_url(user.info["background"]) |> MediaProxy.url(),        "is_local" => user.local, -      "locked" => !!user.info["locked"] +      "locked" => !!user.info["locked"], +      "default_scope" => user.info["default_scope"] || "public"      }      if assigns[:token] do diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index eea743b32..49f73c2fe 100644 --- a/test/web/twitter_api/views/user_view_test.exs +++ b/test/web/twitter_api/views/user_view_test.exs @@ -60,7 +60,8 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "cover_photo" => banner,        "background_image" => nil,        "is_local" => true, -      "locked" => false +      "locked" => false, +      "default_scope" => "public"      }      assert represented == UserView.render("show.json", %{user: user}) @@ -96,7 +97,8 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "cover_photo" => banner,        "background_image" => nil,        "is_local" => true, -      "locked" => false +      "locked" => false, +      "default_scope" => "public"      }      assert represented == UserView.render("show.json", %{user: user, for: follower}) @@ -133,7 +135,8 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "cover_photo" => banner,        "background_image" => nil,        "is_local" => true, -      "locked" => false +      "locked" => false, +      "default_scope" => "public"      }      assert represented == UserView.render("show.json", %{user: follower, for: user}) @@ -177,7 +180,8 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "cover_photo" => banner,        "background_image" => nil,        "is_local" => true, -      "locked" => false +      "locked" => false, +      "default_scope" => "public"      }      blocker = Repo.get(User, blocker.id) | 
