projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'fix/2189-unpin-activity' into 'develop'
[akkoma]
/
lib
/
pleroma
/
user
/
query.ex
diff --git
a/lib/pleroma/user/query.ex
b/lib/pleroma/user/query.ex
index 9ef073dff6ceb5b3368aba3f057a1ddf1be7920f..2440bf890c1adf275b7341019f0e4738eb0bca46 100644
(file)
--- a/
lib/pleroma/user/query.ex
+++ b/
lib/pleroma/user/query.ex
@@
-42,10
+42,12
@@
defmodule Pleroma.User.Query do
external: boolean(),
active: boolean(),
deactivated: boolean(),
external: boolean(),
active: boolean(),
deactivated: boolean(),
+ need_approval: boolean(),
is_admin: boolean(),
is_moderator: boolean(),
super_users: boolean(),
is_admin: boolean(),
is_moderator: boolean(),
super_users: boolean(),
- exclude_service_users: boolean(),
+ invisible: boolean(),
+ internal: boolean(),
followers: User.t(),
friends: User.t(),
recipients_from_activity: [String.t()],
followers: User.t(),
friends: User.t(),
recipients_from_activity: [String.t()],
@@
-79,7
+81,9
@@
defmodule Pleroma.User.Query do
end
defp prepare_query(query, criteria) 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)
end
defp compose_query({key, value}, query)
@@
-89,8
+93,8
@@
defmodule Pleroma.User.Query do
where(query, [u], ilike(field(u, ^key), ^"%#{value}%"))
end
where(query, [u], ilike(field(u, ^key), ^"%#{value}%"))
end
- defp compose_query({:
exclude_service_users, _}, query
) do
- where(query, [u],
not like(u.ap_id, "%/relay") and not like(u.ap_id, "%/internal/fetch")
)
+ defp compose_query({:
invisible, bool}, query) when is_boolean(bool
) do
+ where(query, [u],
u.invisible == ^bool
)
end
defp compose_query({key, value}, query)
end
defp compose_query({key, value}, query)
@@
-106,12
+110,12
@@
defmodule Pleroma.User.Query do
where(query, [u], fragment("? && ?", u.tags, ^tags))
end
where(query, [u], fragment("? && ?", u.tags, ^tags))
end
- defp compose_query({:is_admin,
_
}, query) do
- where(query, [u], u.is_admin)
+ defp compose_query({:is_admin,
bool
}, query) do
+ where(query, [u], u.is_admin
== ^bool
)
end
end
- defp compose_query({:is_moderator,
_
}, query) do
- where(query, [u], u.is_moderator)
+ defp compose_query({:is_moderator,
bool
}, query) do
+ where(query, [u], u.is_moderator
== ^bool
)
end
defp compose_query({:super_users, _}, query) do
end
defp compose_query({:super_users, _}, query) do
@@
-128,13
+132,12
@@
defmodule Pleroma.User.Query do
defp compose_query({:active, _}, query) do
User.restrict_deactivated(query)
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))
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
end
defp compose_query({:deactivated, false}, query) do
@@
-143,7
+146,14
@@
defmodule Pleroma.User.Query do
defp compose_query({:deactivated, true}, query) do
where(query, [u], u.deactivated == ^true)
defp compose_query({:deactivated, true}, query) do
where(query, [u], u.deactivated == ^true)
- |> where([u], not is_nil(u.nickname))
+ end
+
+ defp compose_query({:confirmation_pending, bool}, query) do
+ where(query, [u], u.confirmation_pending == ^bool)
+ end
+
+ defp compose_query({:need_approval, _}, query) do
+ where(query, [u], u.approval_pending)
end
defp compose_query({:followers, %User{id: id}}, query) do
end
defp compose_query({:followers, %User{id: id}}, query) do
@@
-177,8
+187,7
@@
defmodule Pleroma.User.Query do
)
from(u in query,
)
from(u in query,
- where: u.ap_id in ^to or u.id in subquery(following_query),
- distinct: true
+ where: u.ap_id in ^to or u.id in subquery(following_query)
)
end
)
end
@@
-194,10
+203,15
@@
defmodule Pleroma.User.Query do
limit(query, ^limit)
end
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)
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
end
end