|
|
@@ -47,6 +47,7 @@ defmodule Pleroma.User.Query do |
|
|
|
is_moderator: boolean(), |
|
|
|
super_users: boolean(), |
|
|
|
invisible: boolean(), |
|
|
|
internal: boolean(), |
|
|
|
followers: User.t(), |
|
|
|
friends: User.t(), |
|
|
|
recipients_from_activity: [String.t()], |
|
|
@@ -80,7 +81,9 @@ defmodule Pleroma.User.Query do |
|
|
|
end |
|
|
|
|
|
|
|
defp prepare_query(query, criteria) do |
|
|
|
Enum.reduce(criteria, query, &compose_query/2) |
|
|
|
criteria |
|
|
|
|> Map.put_new(:internal, false) |
|
|
|
|> Enum.reduce(query, &compose_query/2) |
|
|
|
end |
|
|
|
|
|
|
|
defp compose_query({key, value}, query) |
|
|
@@ -129,14 +132,12 @@ defmodule Pleroma.User.Query do |
|
|
|
|
|
|
|
defp compose_query({:active, _}, query) do |
|
|
|
User.restrict_deactivated(query) |
|
|
|
|> where([u], not is_nil(u.nickname)) |
|
|
|
|> where([u], u.approval_pending == false) |
|
|
|
end |
|
|
|
|
|
|
|
defp compose_query({:legacy_active, _}, query) do |
|
|
|
query |
|
|
|
|> where([u], fragment("not (?->'deactivated' @> 'true')", u.info)) |
|
|
|
|> where([u], not is_nil(u.nickname)) |
|
|
|
end |
|
|
|
|
|
|
|
defp compose_query({:deactivated, false}, query) do |
|
|
@@ -145,7 +146,6 @@ defmodule Pleroma.User.Query do |
|
|
|
|
|
|
|
defp compose_query({:deactivated, true}, query) do |
|
|
|
where(query, [u], u.deactivated == ^true) |
|
|
|
|> where([u], not is_nil(u.nickname)) |
|
|
|
end |
|
|
|
|
|
|
|
defp compose_query({:need_approval, _}, query) do |
|
|
@@ -199,10 +199,15 @@ defmodule Pleroma.User.Query do |
|
|
|
limit(query, ^limit) |
|
|
|
end |
|
|
|
|
|
|
|
defp compose_query({:internal, false}, query) do |
|
|
|
query |
|
|
|
|> where([u], not is_nil(u.nickname)) |
|
|
|
|> where([u], not like(u.nickname, "internal.%")) |
|
|
|
end |
|
|
|
|
|
|
|
defp compose_query(_unsupported_param, query), do: query |
|
|
|
|
|
|
|
defp location_query(query, local) do |
|
|
|
where(query, [u], u.local == ^local) |
|
|
|
|> where([u], not is_nil(u.nickname)) |
|
|
|
end |
|
|
|
end |