Use Jason for rendering responses
[akkoma] / lib / pleroma / user.ex
index d68015a8079179b6cb5361a14236b53c22d60111..3aa245f2aa43f60389fc8a8f43023de09a39268e 100644 (file)
@@ -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