diff options
author | lain <lain@soykaf.club> | 2019-11-21 13:13:14 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2019-11-21 13:13:14 +0000 |
commit | 8feb5dcb4240e92bf20cdc6896877cfa9551b61c (patch) | |
tree | b5d06ca778b0ded2649ba57bc75ce43cb2e0f8db /lib/pleroma/user.ex | |
parent | 1680a3479e4e0b3be5af8db130f8672a063841b0 (diff) | |
parent | e52955c961a225618f00f8f0fc0e7dcbf5a51e23 (diff) | |
download | pleroma-8feb5dcb4240e92bf20cdc6896877cfa9551b61c.tar.gz |
Merge branch 'issue/1348' into 'develop'
[#1348] excluded invisible actors from gets /api/v1/accounts/:id
See merge request pleroma/pleroma!1937
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 34370be20..b2c61e921 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -133,6 +133,8 @@ defmodule Pleroma.User do def visible_for?(user, for_user \\ nil) + def visible_for?(%User{invisible: true}, _), do: false + def visible_for?(%User{id: user_id}, %User{id: for_id}) when user_id == for_id, do: true def visible_for?(%User{} = user, for_user) do @@ -1321,22 +1323,23 @@ defmodule Pleroma.User do end end - @doc "Creates an internal service actor by URI if missing. Optionally takes nickname for addressing." + @doc """ + Creates an internal service actor by URI if missing. + Optionally takes nickname for addressing. + """ def get_or_create_service_actor_by_ap_id(uri, nickname \\ nil) do - with %User{} = user <- get_cached_by_ap_id(uri) do - user - else - _ -> - {:ok, user} = - %User{} - |> cast(%{}, [:ap_id, :nickname, :local]) - |> put_change(:ap_id, uri) - |> put_change(:nickname, nickname) - |> put_change(:local, true) - |> put_change(:follower_address, uri <> "/followers") - |> Repo.insert() + with user when is_nil(user) <- get_cached_by_ap_id(uri) do + {:ok, user} = + %User{ + invisible: true, + local: true, + ap_id: uri, + nickname: nickname, + follower_address: uri <> "/followers" + } + |> Repo.insert() - user + user end end |