diff options
| -rw-r--r-- | lib/pleroma/user/info.ex | 6 | ||||
| -rw-r--r-- | lib/pleroma/web/activity_pub/views/user_view.ex | 8 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/mastodon_api_controller.ex | 4 | ||||
| -rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api_controller.ex | 6 | ||||
| -rw-r--r-- | lib/pleroma/web/twitter_api/views/user_view.ex | 3 | ||||
| -rw-r--r-- | priv/repo/migrations/20190128181211_split_hide_network.exs | 10 | ||||
| -rw-r--r-- | test/web/activity_pub/activity_pub_controller_test.exs | 8 | ||||
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_controller_test.exs | 16 | ||||
| -rw-r--r-- | test/web/twitter_api/twitter_api_controller_test.exs | 60 | ||||
| -rw-r--r-- | test/web/twitter_api/views/user_view_test.exs | 12 | 
10 files changed, 45 insertions, 88 deletions
| diff --git a/lib/pleroma/user/info.ex b/lib/pleroma/user/info.ex index 2186190a0..c6c923aac 100644 --- a/lib/pleroma/user/info.ex +++ b/lib/pleroma/user/info.ex @@ -30,8 +30,7 @@ defmodule Pleroma.User.Info do      field(:topic, :string, default: nil)      field(:hub, :string, default: nil)      field(:salmon, :string, default: nil) -    field(:hide_followers, :boolean, default: false) -    field(:hide_followings, :boolean, default: false) +    field(:hide_network, :boolean, default: false)      field(:pinned_activities, {:array, :string}, default: [])      # Found in the wild @@ -144,8 +143,7 @@ defmodule Pleroma.User.Info do        :no_rich_text,        :default_scope,        :banner, -      :hide_followings, -      :hide_followers, +      :hide_network,        :background      ])    end diff --git a/lib/pleroma/web/activity_pub/views/user_view.ex b/lib/pleroma/web/activity_pub/views/user_view.ex index b9588bee5..dcf681b6d 100644 --- a/lib/pleroma/web/activity_pub/views/user_view.ex +++ b/lib/pleroma/web/activity_pub/views/user_view.ex @@ -86,7 +86,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do      query = from(user in query, select: [:ap_id])      following = Repo.all(query) -    collection(following, "#{user.ap_id}/following", page, !user.info.hide_followings) +    collection(following, "#{user.ap_id}/following", page, !user.info.hide_network)      |> Map.merge(Utils.make_json_ld_header())    end @@ -99,7 +99,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do        "id" => "#{user.ap_id}/following",        "type" => "OrderedCollection",        "totalItems" => length(following), -      "first" => collection(following, "#{user.ap_id}/following", 1, !user.info.hide_followings) +      "first" => collection(following, "#{user.ap_id}/following", 1, !user.info.hide_network)      }      |> Map.merge(Utils.make_json_ld_header())    end @@ -109,7 +109,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do      query = from(user in query, select: [:ap_id])      followers = Repo.all(query) -    collection(followers, "#{user.ap_id}/followers", page, !user.info.hide_followers) +    collection(followers, "#{user.ap_id}/followers", page, !user.info.hide_network)      |> Map.merge(Utils.make_json_ld_header())    end @@ -122,7 +122,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do        "id" => "#{user.ap_id}/followers",        "type" => "OrderedCollection",        "totalItems" => length(followers), -      "first" => collection(followers, "#{user.ap_id}/followers", 1, !user.info.hide_followers) +      "first" => collection(followers, "#{user.ap_id}/followers", 1, !user.info.hide_network)      }      |> Map.merge(Utils.make_json_ld_header())    end diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 85769c3d7..7f3fbff4a 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -605,7 +605,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do        followers =          cond do            for_user && user.id == for_user.id -> followers -          user.info.hide_followers -> [] +          user.info.hide_network -> []            true -> followers          end @@ -621,7 +621,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do        followers =          cond do            for_user && user.id == for_user.id -> followers -          user.info.hide_followings -> [] +          user.info.hide_network -> []            true -> followers          end diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index 5e3fe9352..3064d61ea 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -503,7 +503,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do        followers =          cond do            for_user && user.id == for_user.id -> followers -          user.info.hide_followers -> [] +          user.info.hide_network -> []            true -> followers          end @@ -523,7 +523,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do        friends =          cond do            for_user && user.id == for_user.id -> friends -          user.info.hide_followings -> [] +          user.info.hide_network -> []            true -> friends          end @@ -618,7 +618,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do    defp build_info_cng(user, params) do      info_params = -      ["no_rich_text", "locked", "hide_followers", "hide_followings"] +      ["no_rich_text", "locked", "hide_network"]        |> Enum.reduce(%{}, fn key, res ->          if value = params[key] do            Map.put(res, key, value == "true") diff --git a/lib/pleroma/web/twitter_api/views/user_view.ex b/lib/pleroma/web/twitter_api/views/user_view.ex index cd7c4349c..15682db8f 100644 --- a/lib/pleroma/web/twitter_api/views/user_view.ex +++ b/lib/pleroma/web/twitter_api/views/user_view.ex @@ -108,8 +108,7 @@ defmodule Pleroma.Web.TwitterAPI.UserView do        "locked" => user.info.locked,        "default_scope" => user.info.default_scope,        "no_rich_text" => user.info.no_rich_text, -      "hide_followers" => user.info.hide_followers, -      "hide_followings" => user.info.hide_followings, +      "hide_network" => user.info.hide_network,        "fields" => fields,        # Pleroma extension diff --git a/priv/repo/migrations/20190128181211_split_hide_network.exs b/priv/repo/migrations/20190128181211_split_hide_network.exs deleted file mode 100644 index 2c117dbee..000000000 --- a/priv/repo/migrations/20190128181211_split_hide_network.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule Pleroma.Repo.Migrations.SplitHideNetwork do -  use Ecto.Migration - -  def up do -    execute("UPDATE users SET info = jsonb_set(jsonb_set(info, '{hide_followers}'::text[], info->'hide_network'), '{hide_followings}'::text[], info->'hide_network')") -  end - -  def down do -  end -end diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index 0a0103793..d3dd160dd 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -386,9 +386,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do        assert result["first"]["orderedItems"] == [user.ap_id]      end -    test "it returns returns empty if the user has 'hide_followers' set", %{conn: conn} do +    test "it returns returns empty if the user has 'hide_network' set", %{conn: conn} do        user = insert(:user) -      user_two = insert(:user, %{info: %{hide_followers: true}}) +      user_two = insert(:user, %{info: %{hide_network: true}})        User.follow(user, user_two)        result = @@ -441,8 +441,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do        assert result["first"]["orderedItems"] == [user_two.ap_id]      end -    test "it returns returns empty if the user has 'hide_followings' set", %{conn: conn} do -      user = insert(:user, %{info: %{hide_followings: true}}) +    test "it returns returns empty if the user has 'hide_network' set", %{conn: conn} do +      user = insert(:user, %{info: %{hide_network: true}})        user_two = insert(:user)        User.follow(user, user_two) diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index dc6c7e0e8..141d300c7 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -1099,9 +1099,9 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      assert id == to_string(user.id)    end -  test "getting followers, hide_followers", %{conn: conn} do +  test "getting followers, hide_network", %{conn: conn} do      user = insert(:user) -    other_user = insert(:user, %{info: %{hide_followers: true}}) +    other_user = insert(:user, %{info: %{hide_network: true}})      {:ok, _user} = User.follow(user, other_user)      conn = @@ -1111,9 +1111,9 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      assert [] == json_response(conn, 200)    end -  test "getting followers, hide_followers, same user requesting", %{conn: conn} do +  test "getting followers, hide_network, same user requesting", %{conn: conn} do      user = insert(:user) -    other_user = insert(:user, %{info: %{hide_followers: true}}) +    other_user = insert(:user, %{info: %{hide_network: true}})      {:ok, _user} = User.follow(user, other_user)      conn = @@ -1137,8 +1137,8 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      assert id == to_string(other_user.id)    end -  test "getting following, hide_followings", %{conn: conn} do -    user = insert(:user, %{info: %{hide_followings: true}}) +  test "getting following, hide_network", %{conn: conn} do +    user = insert(:user, %{info: %{hide_network: true}})      other_user = insert(:user)      {:ok, user} = User.follow(user, other_user) @@ -1149,8 +1149,8 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      assert [] == json_response(conn, 200)    end -  test "getting following, hide_followings, same user requesting", %{conn: conn} do -    user = insert(:user, %{info: %{hide_followings: true}}) +  test "getting following, hide_network, same user requesting", %{conn: conn} do +    user = insert(:user, %{info: %{hide_network: true}})      other_user = insert(:user)      {:ok, user} = User.follow(user, other_user) diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index 6777354c3..863abd10f 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -1132,8 +1132,8 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do               )      end -    test "it returns empty when hide_followers is set to true", %{conn: conn} do -      user = insert(:user, %{info: %{hide_followers: true}}) +    test "it returns empty for a hidden network", %{conn: conn} do +      user = insert(:user, %{info: %{hide_network: true}})        follower_one = insert(:user)        follower_two = insert(:user)        not_follower = insert(:user) @@ -1150,11 +1150,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        assert [] == response      end -    test "it returns the followers when hide_followers is set to true if requested by the user themselves", -         %{ -           conn: conn -         } do -      user = insert(:user, %{info: %{hide_followers: true}}) +    test "it returns the followers for a hidden network if requested by the user themselves", %{ +      conn: conn +    } do +      user = insert(:user, %{info: %{hide_network: true}})        follower_one = insert(:user)        follower_two = insert(:user)        _not_follower = insert(:user) @@ -1257,8 +1256,8 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do               )      end -    test "it returns empty when hide_followings is set to true", %{conn: conn} do -      user = insert(:user, %{info: %{hide_followings: true}}) +    test "it returns empty for a hidden network", %{conn: conn} do +      user = insert(:user, %{info: %{hide_network: true}})        followed_one = insert(:user)        followed_two = insert(:user)        not_followed = insert(:user) @@ -1274,11 +1273,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        assert [] == json_response(conn, 200)      end -    test "it returns friends when hide_followings is set to true if the user themselves request it", -         %{ -           conn: conn -         } do -      user = insert(:user, %{info: %{hide_followings: true}}) +    test "it returns friends for a hidden network if the user themselves request it", %{ +      conn: conn +    } do +      user = insert(:user, %{info: %{hide_network: true}})        followed_one = insert(:user)        followed_two = insert(:user)        _not_followed = insert(:user) @@ -1366,51 +1364,27 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user})      end -    test "it sets and un-sets hide_followings", %{conn: conn} do -      user = insert(:user) - -      conn -      |> assign(:user, user) -      |> post("/api/account/update_profile.json", %{ -        "hide_followings" => "true" -      }) - -      user = Repo.get!(User, user.id) -      assert user.info.hide_followings == true - -      conn = -        conn -        |> assign(:user, user) -        |> post("/api/account/update_profile.json", %{ -          "hide_followings" => "false" -        }) - -      user = Repo.get!(User, user.id) -      assert user.info.hide_followings == false -      assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user}) -    end - -    test "it sets and un-sets hide_followers", %{conn: conn} do +    test "it sets and un-sets hide_network", %{conn: conn} do        user = insert(:user)        conn        |> assign(:user, user)        |> post("/api/account/update_profile.json", %{ -        "hide_followers" => "true" +        "hide_network" => "true"        })        user = Repo.get!(User, user.id) -      assert user.info.hide_followers == true +      assert user.info.hide_network == true        conn =          conn          |> assign(:user, user)          |> post("/api/account/update_profile.json", %{ -          "hide_followers" => "false" +          "hide_network" => "false"          })        user = Repo.get!(User, user.id) -      assert user.info.hide_followers == false +      assert user.info.hide_network == false        assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user})      end diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index 0885afaec..daf18c1c5 100644 --- a/test/web/twitter_api/views/user_view_test.exs +++ b/test/web/twitter_api/views/user_view_test.exs @@ -100,8 +100,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "locked" => false,        "default_scope" => "public",        "no_rich_text" => false, -      "hide_followings" => false, -      "hide_followers" => false, +      "hide_network" => false,        "fields" => [],        "pleroma" => %{          "confirmation_pending" => false, @@ -148,8 +147,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "locked" => false,        "default_scope" => "public",        "no_rich_text" => false, -      "hide_followings" => false, -      "hide_followers" => false, +      "hide_network" => false,        "fields" => [],        "pleroma" => %{          "confirmation_pending" => false, @@ -197,8 +195,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "locked" => false,        "default_scope" => "public",        "no_rich_text" => false, -      "hide_followings" => false, -      "hide_followers" => false, +      "hide_network" => false,        "fields" => [],        "pleroma" => %{          "confirmation_pending" => false, @@ -260,8 +257,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "locked" => false,        "default_scope" => "public",        "no_rich_text" => false, -      "hide_followings" => false, -      "hide_followers" => false, +      "hide_network" => false,        "fields" => [],        "pleroma" => %{          "confirmation_pending" => false, | 
