Change user.discoverable field to user.is_discoverable

This commit is contained in:
Mark Felder 2020-10-13 09:45:08 -05:00
parent eea879eb36
commit 8bacdc3680
23 changed files with 52 additions and 37 deletions

View file

@ -136,7 +136,7 @@ defmodule Pleroma.User do
field(:pleroma_settings_store, :map, default: %{}) field(:pleroma_settings_store, :map, default: %{})
field(:fields, {:array, :map}, default: []) field(:fields, {:array, :map}, default: [])
field(:raw_fields, {:array, :map}, default: []) field(:raw_fields, {:array, :map}, default: [])
field(:discoverable, :boolean, default: false) field(:is_discoverable, :boolean, default: false)
field(:invisible, :boolean, default: false) field(:invisible, :boolean, default: false)
field(:allow_following_move, :boolean, default: true) field(:allow_following_move, :boolean, default: true)
field(:skip_thread_containment, :boolean, default: false) field(:skip_thread_containment, :boolean, default: false)
@ -448,7 +448,7 @@ defmodule Pleroma.User do
:follower_count, :follower_count,
:fields, :fields,
:following_count, :following_count,
:discoverable, :is_discoverable,
:invisible, :invisible,
:actor_type, :actor_type,
:also_known_as, :also_known_as,
@ -495,7 +495,7 @@ defmodule Pleroma.User do
:fields, :fields,
:raw_fields, :raw_fields,
:pleroma_settings_store, :pleroma_settings_store,
:discoverable, :is_discoverable,
:actor_type, :actor_type,
:also_known_as, :also_known_as,
:accepts_chat_messages :accepts_chat_messages
@ -1618,7 +1618,7 @@ defmodule Pleroma.User do
pleroma_settings_store: %{}, pleroma_settings_store: %{},
fields: [], fields: [],
raw_fields: [], raw_fields: [],
discoverable: false, is_discoverable: false,
also_known_as: [] also_known_as: []
}) })
end end

View file

@ -164,7 +164,7 @@ defmodule Pleroma.User.Search do
end end
defp filter_discoverable_users(query) do defp filter_discoverable_users(query) do
from(q in query, where: q.discoverable == true) from(q in query, where: q.is_discoverable == true)
end end
defp filter_internal_users(query) do defp filter_internal_users(query) do

View file

@ -1232,7 +1232,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
capabilities = data["capabilities"] || %{} capabilities = data["capabilities"] || %{}
accepts_chat_messages = capabilities["acceptsChatMessages"] accepts_chat_messages = capabilities["acceptsChatMessages"]
data = Transmogrifier.maybe_fix_user_object(data) data = Transmogrifier.maybe_fix_user_object(data)
discoverable = data["discoverable"] || false is_discoverable = data["is_discoverable"] || false
invisible = data["invisible"] || false invisible = data["invisible"] || false
actor_type = data["type"] || "Person" actor_type = data["type"] || "Person"
@ -1258,7 +1258,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
fields: fields, fields: fields,
emoji: emojis, emoji: emojis,
locked: locked, locked: locked,
discoverable: discoverable, is_discoverable: is_discoverable,
invisible: invisible, invisible: invisible,
avatar: avatar, avatar: avatar,
name: data["name"], name: data["name"],

View file

@ -110,7 +110,7 @@ defmodule Pleroma.Web.ActivityPub.UserView do
"endpoints" => endpoints, "endpoints" => endpoints,
"attachment" => fields, "attachment" => fields,
"tag" => emoji_tags, "tag" => emoji_tags,
"discoverable" => user.discoverable, "is_discoverable" => user.is_discoverable,
"capabilities" => capabilities "capabilities" => capabilities
} }
|> Map.merge(maybe_make_image(&User.avatar_url/2, "icon", user)) |> Map.merge(maybe_make_image(&User.avatar_url/2, "icon", user))

View file

@ -52,7 +52,7 @@ defmodule Pleroma.Web.AdminAPI.AccountView do
:skip_thread_containment, :skip_thread_containment,
:pleroma_settings_store, :pleroma_settings_store,
:raw_fields, :raw_fields,
:discoverable, :is_discoverable,
:actor_type :actor_type
]) ])
|> Map.merge(%{ |> Map.merge(%{

View file

@ -606,7 +606,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
description: "Sets the background image of the user.", description: "Sets the background image of the user.",
format: :binary format: :binary
}, },
discoverable: %Schema{ is_discoverable: %Schema{
allOf: [BooleanLike], allOf: [BooleanLike],
nullable: true, nullable: true,
description: description:
@ -630,7 +630,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do
pleroma_settings_store: %{"pleroma-fe" => %{"key" => "val"}}, pleroma_settings_store: %{"pleroma-fe" => %{"key" => "val"}},
skip_thread_containment: false, skip_thread_containment: false,
allow_following_move: false, allow_following_move: false,
discoverable: false, is_discoverable: false,
actor_type: "Person" actor_type: "Person"
} }
} }

View file

@ -253,7 +253,7 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
"sensitive" => false, "sensitive" => false,
"note" => "lain", "note" => "lain",
"pleroma" => %{ "pleroma" => %{
"discoverable" => false, "is_discoverable" => false,
"actor_type" => "Person" "actor_type" => "Person"
}, },
"fields" => [] "fields" => []

View file

@ -124,7 +124,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do
type: :object, type: :object,
properties: %{ properties: %{
actor_type: ActorType, actor_type: ActorType,
discoverable: %Schema{ is_discoverable: %Schema{
type: :boolean, type: :boolean,
description: description:
"whether the user allows discovery of the account in search results and other services." "whether the user allows discovery of the account in search results and other services."
@ -205,7 +205,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do
"note" => "foobar", "note" => "foobar",
"pleroma" => %{ "pleroma" => %{
"actor_type" => "Person", "actor_type" => "Person",
"discoverable" => false, "is_discoverable" => false,
"no_rich_text" => false, "no_rich_text" => false,
"show_role" => true "show_role" => true
}, },

View file

@ -44,7 +44,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Chat do
"sensitive" => false, "sensitive" => false,
"note" => "lain", "note" => "lain",
"pleroma" => %{ "pleroma" => %{
"discoverable" => false, "is_discoverable" => false,
"actor_type" => "Person" "actor_type" => "Person"
}, },
"fields" => [] "fields" => []

View file

@ -284,7 +284,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
"source" => %{ "source" => %{
"fields" => [], "fields" => [],
"note" => "Tester Number 6", "note" => "Tester Number 6",
"pleroma" => %{"actor_type" => "Person", "discoverable" => false}, "pleroma" => %{"actor_type" => "Person", "is_discoverable" => false},
"sensitive" => false "sensitive" => false
}, },
"statuses_count" => 1, "statuses_count" => 1,

View file

@ -186,7 +186,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do
:show_role, :show_role,
:skip_thread_containment, :skip_thread_containment,
:allow_following_move, :allow_following_move,
:discoverable, :is_discoverable,
:accepts_chat_messages :accepts_chat_messages
] ]
|> Enum.reduce(%{}, fn key, acc -> |> Enum.reduce(%{}, fn key, acc ->

View file

@ -261,7 +261,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
sensitive: false, sensitive: false,
fields: user.raw_fields, fields: user.raw_fields,
pleroma: %{ pleroma: %{
discoverable: user.discoverable, is_discoverable: user.is_discoverable,
actor_type: user.actor_type actor_type: user.actor_type
} }
}, },

View file

@ -10,7 +10,7 @@ defmodule Pleroma.Web.Metadata.Providers.RestrictIndexing do
""" """
@impl true @impl true
def build_tags(%{user: %{local: true, discoverable: true}}), do: [] def build_tags(%{user: %{local: true, is_discoverable: true}}), do: []
def build_tags(_) do def build_tags(_) do
[ [

View file

@ -0,0 +1,15 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Repo.Migrations.RefactorDiscoverableUserField do
use Ecto.Migration
def up do
execute("ALTER TABLE users RENAME COLUMN discoverable TO is_discoverable;")
end
def down do
execute("ALTER TABLE users RENAME COLUMN is_discoverable TO discoverable;")
end
end

View file

@ -31,7 +31,7 @@ defmodule Pleroma.Factory do
nickname: sequence(:nickname, &"nick#{&1}"), nickname: sequence(:nickname, &"nick#{&1}"),
password_hash: Pbkdf2.hash_pwd_salt("test"), password_hash: Pbkdf2.hash_pwd_salt("test"),
bio: sequence(:bio, &"Tester Number #{&1}"), bio: sequence(:bio, &"Tester Number #{&1}"),
discoverable: true, is_discoverable: true,
last_digest_emailed_at: NaiveDateTime.utc_now(), last_digest_emailed_at: NaiveDateTime.utc_now(),
last_refreshed_at: NaiveDateTime.utc_now(), last_refreshed_at: NaiveDateTime.utc_now(),
notification_settings: %Pleroma.User.NotificationSetting{}, notification_settings: %Pleroma.User.NotificationSetting{},

View file

@ -66,7 +66,7 @@ defmodule Pleroma.UserSearchTest do
end end
test "excludes users when discoverable is false" do test "excludes users when discoverable is false" do
insert(:user, %{nickname: "john 3000", discoverable: false}) insert(:user, %{nickname: "john 3000", is_discoverable: false})
insert(:user, %{nickname: "john 3001"}) insert(:user, %{nickname: "john 3001"})
users = User.search("john") users = User.search("john")

View file

@ -1467,7 +1467,7 @@ defmodule Pleroma.UserTest do
pleroma_settings_store: %{"q" => "x"}, pleroma_settings_store: %{"q" => "x"},
fields: [%{"gg" => "qq"}], fields: [%{"gg" => "qq"}],
raw_fields: [%{"gg" => "qq"}], raw_fields: [%{"gg" => "qq"}],
discoverable: true, is_discoverable: true,
also_known_as: ["https://lol.olo/users/loll"] also_known_as: ["https://lol.olo/users/loll"]
}) })
@ -1509,7 +1509,7 @@ defmodule Pleroma.UserTest do
pleroma_settings_store: %{}, pleroma_settings_store: %{},
fields: [], fields: [],
raw_fields: [], raw_fields: [],
discoverable: false, is_discoverable: false,
also_known_as: [] also_known_as: []
} = user } = user
end end

View file

@ -180,7 +180,7 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do
test "it returns non-discoverable users" do test "it returns non-discoverable users" do
insert(:user) insert(:user)
insert(:user, discoverable: false) insert(:user, is_discoverable: false)
{:ok, _results, total} = Search.user() {:ok, _results, total} = Search.user()

View file

@ -147,14 +147,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController.UpdateCredentialsTest do
end end
test "updates the user's discoverable status", %{conn: conn} do test "updates the user's discoverable status", %{conn: conn} do
assert %{"source" => %{"pleroma" => %{"discoverable" => true}}} = assert %{"source" => %{"pleroma" => %{"is_discoverable" => true}}} =
conn conn
|> patch("/api/v1/accounts/update_credentials", %{discoverable: "true"}) |> patch("/api/v1/accounts/update_credentials", %{is_discoverable: "true"})
|> json_response_and_validate_schema(:ok) |> json_response_and_validate_schema(:ok)
assert %{"source" => %{"pleroma" => %{"discoverable" => false}}} = assert %{"source" => %{"pleroma" => %{"is_discoverable" => false}}} =
conn conn
|> patch("/api/v1/accounts/update_credentials", %{discoverable: "false"}) |> patch("/api/v1/accounts/update_credentials", %{is_discoverable: "false"})
|> json_response_and_validate_schema(:ok) |> json_response_and_validate_schema(:ok)
end end

View file

@ -1278,7 +1278,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
"note" => "", "note" => "",
"pleroma" => %{ "pleroma" => %{
"actor_type" => "Person", "actor_type" => "Person",
"discoverable" => false, "is_discoverable" => false,
"no_rich_text" => false, "no_rich_text" => false,
"show_role" => true "show_role" => true
}, },

View file

@ -69,7 +69,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
sensitive: false, sensitive: false,
pleroma: %{ pleroma: %{
actor_type: "Person", actor_type: "Person",
discoverable: true is_discoverable: true
}, },
fields: [] fields: []
}, },
@ -167,7 +167,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
sensitive: false, sensitive: false,
pleroma: %{ pleroma: %{
actor_type: "Service", actor_type: "Service",
discoverable: true is_discoverable: true
}, },
fields: [] fields: []
}, },

View file

@ -16,14 +16,14 @@ defmodule Pleroma.Web.MetadataTest do
end end
test "for local user" do test "for local user" do
user = insert(:user, discoverable: false) user = insert(:user, is_discoverable: false)
assert Pleroma.Web.Metadata.build_tags(%{user: user}) =~ assert Pleroma.Web.Metadata.build_tags(%{user: user}) =~
"<meta content=\"noindex, noarchive\" name=\"robots\">" "<meta content=\"noindex, noarchive\" name=\"robots\">"
end end
test "for local user set to discoverable" do test "for local user set to discoverable" do
user = insert(:user, discoverable: true) user = insert(:user, is_discoverable: true)
refute Pleroma.Web.Metadata.build_tags(%{user: user}) =~ refute Pleroma.Web.Metadata.build_tags(%{user: user}) =~
"<meta content=\"noindex, noarchive\" name=\"robots\">" "<meta content=\"noindex, noarchive\" name=\"robots\">"
@ -33,14 +33,14 @@ defmodule Pleroma.Web.MetadataTest do
describe "no metadata for private instances" do describe "no metadata for private instances" do
test "for local user set to discoverable" do test "for local user set to discoverable" do
clear_config([:instance, :public], false) clear_config([:instance, :public], false)
user = insert(:user, bio: "This is my secret fedi account bio", discoverable: true) user = insert(:user, bio: "This is my secret fedi account bio", is_discoverable: true)
assert "" = Pleroma.Web.Metadata.build_tags(%{user: user}) assert "" = Pleroma.Web.Metadata.build_tags(%{user: user})
end end
test "search exclusion metadata is included" do test "search exclusion metadata is included" do
clear_config([:instance, :public], false) clear_config([:instance, :public], false)
user = insert(:user, bio: "This is my secret fedi account bio", discoverable: false) user = insert(:user, bio: "This is my secret fedi account bio", is_discoverable: false)
assert ~s(<meta content="noindex, noarchive" name="robots">) == assert ~s(<meta content="noindex, noarchive" name="robots">) ==
Pleroma.Web.Metadata.build_tags(%{user: user}) Pleroma.Web.Metadata.build_tags(%{user: user})

View file

@ -14,13 +14,13 @@ defmodule Pleroma.Web.Metadata.Providers.RestrictIndexingTest do
test "for local user" do test "for local user" do
assert Pleroma.Web.Metadata.Providers.RestrictIndexing.build_tags(%{ assert Pleroma.Web.Metadata.Providers.RestrictIndexing.build_tags(%{
user: %Pleroma.User{local: true, discoverable: true} user: %Pleroma.User{local: true, is_discoverable: true}
}) == [] }) == []
end end
test "for local user when discoverable is false" do test "for local user when discoverable is false" do
assert Pleroma.Web.Metadata.Providers.RestrictIndexing.build_tags(%{ assert Pleroma.Web.Metadata.Providers.RestrictIndexing.build_tags(%{
user: %Pleroma.User{local: true, discoverable: false} user: %Pleroma.User{local: true, is_discoverable: false}
}) == [{:meta, [name: "robots", content: "noindex, noarchive"], []}] }) == [{:meta, [name: "robots", content: "noindex, noarchive"], []}]
end end
end end