aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2019-09-05 15:33:49 +0300
committerrinpatch <rinpatch@sdf.org>2019-09-05 15:39:10 +0300
commit26fe6f70c9cd6a37e72f4795a1a9a316ef5d95fb (patch)
tree7c59f864ea3a4402d91b3810a7c0764f17d8aceb /lib
parentcc1d1ee4069c47d2e5e91347438b2a6c7bff86cf (diff)
downloadpleroma-26fe6f70c9cd6a37e72f4795a1a9a316ef5d95fb.tar.gz
Move checking for restrict_local to User.get_cached_by_id_or_nickname
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex18
-rw-r--r--lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex25
2 files changed, 16 insertions, 27 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index d68015a80..3aa245f2a 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -570,10 +570,20 @@ defmodule Pleroma.User do
end
def get_cached_by_nickname_or_id(nickname_or_id, opts \\ []) do
- if is_integer(nickname_or_id) or Pleroma.FlakeId.is_flake_id?(nickname_or_id) do
- get_cached_by_id(nickname_or_id) || get_cached_by_nickname(nickname_or_id)
- else
- unless opts[:restrict_remote_nicknames], do: get_cached_by_nickname(nickname_or_id)
+ restrict_to_local = Pleroma.Config.get([:instance, :limit_to_local_content])
+
+ cond do
+ is_integer(nickname_or_id) or Pleroma.FlakeId.is_flake_id?(nickname_or_id) ->
+ get_cached_by_id(nickname_or_id) || get_cached_by_nickname(nickname_or_id)
+
+ restrict_to_local == false ->
+ get_cached_by_nickname(nickname_or_id)
+
+ restrict_to_local == :unauthenticated and match?(%User{}, opts[:for]) ->
+ get_cached_by_nickname(nickname_or_id)
+
+ true ->
+ nil
end
end
diff --git a/lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex
index c5f281976..8dfad7a54 100644
--- a/lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex
+++ b/lib/pleroma/web/mastodon_api/controllers/mastodon_api_controller.ex
@@ -290,7 +290,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
end
def user(%{assigns: %{user: for_user}} = conn, %{"id" => nickname_or_id}) do
- with %User{} = user <- get_user_by_nickname_or_id(for_user, nickname_or_id),
+ with %User{} = user <- User.get_cached_by_nickname_or_id(nickname_or_id, for: for_user),
true <- User.auth_active?(user) || user.id == for_user.id || User.superuser?(for_user) do
account = AccountView.render("account.json", %{user: user, for: for_user})
json(conn, account)
@@ -390,7 +390,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
end
def user_statuses(%{assigns: %{user: reading_user}} = conn, params) do
- with %User{} = user <- get_user_by_nickname_or_id(reading_user, params["id"]) do
+ with %User{} = user <- User.get_cached_by_nickname_or_id(params["id"], for: reading_user) do
params =
params
|> Map.put("tag", params["tagged"])
@@ -1697,25 +1697,4 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
defp present?(nil), do: false
defp present?(false), do: false
defp present?(_), do: true
-
- defp get_user_by_nickname_or_id(for_user, nickname_or_id) do
- restrict_to_local = Pleroma.Config.get([:instance, :limit_to_local_content])
-
- opts =
- cond do
- restrict_to_local == :all ->
- [restrict_remote_nicknames: true]
-
- restrict_to_local == false ->
- []
-
- restrict_to_local == :unauthenticated and match?(%User{}, for_user) ->
- []
-
- true ->
- [restrict_remote_nicknames: true]
- end
-
- User.get_cached_by_nickname_or_id(nickname_or_id, opts)
- end
end