Merge branch 'develop' into fix/config-gen-releases
[akkoma] / lib / pleroma / activity / search.ex
index f2fdfffe12051c34773531e15d440e51f629ea28..0aa2aab23dded19cf9426ed6e8e3b2a7b51a3d01 100644 (file)
@@ -39,8 +39,7 @@ defmodule Pleroma.Activity.Search do
           "to_tsvector('english', ?->>'content') @@ plainto_tsquery('english', ?)",
           o.data,
           ^search_query
-        ),
-      order_by: [desc: :id]
+        )
     )
   end
 
@@ -56,11 +55,18 @@ defmodule Pleroma.Activity.Search do
     )
   end
 
-  # users can search everything
-  defp maybe_restrict_local(q, %User{}), do: q
+  defp maybe_restrict_local(q, user) do
+    limit = Pleroma.Config.get([:instance, :limit_to_local_content], :unauthenticated)
+
+    case {limit, user} do
+      {:all, _} -> restrict_local(q)
+      {:unauthenticated, %User{}} -> q
+      {:unauthenticated, _} -> restrict_local(q)
+      {false, _} -> q
+    end
+  end
 
-  # unauthenticated users can only search local activities
-  defp maybe_restrict_local(q, _), do: where(q, local: true)
+  defp restrict_local(q), do: where(q, local: true)
 
   defp maybe_fetch(activities, user, search_query) do
     with true <- Regex.match?(~r/https?:/, search_query),