aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2019-03-20 00:37:20 +0000
committerkaniini <nenolod@gmail.com>2019-03-20 00:37:20 +0000
commit606766b010b028d284c7a58161f6a147915449d0 (patch)
tree46318003878879e731a698d309ac1fcb709978da /lib
parent9b80203ea5d3a43ccba15f20172c790e127038f9 (diff)
parent7ac9fff437a2aee3403a769b6cdfb3533771b03e (diff)
downloadpleroma-606766b010b028d284c7a58161f6a147915449d0.tar.gz
Merge branch 'fix/search-users-for-admin' into 'develop'
Rework users search Closes admin-fe#12 See merge request pleroma/pleroma!954
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex23
1 files changed, 8 insertions, 15 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 8df276ae0..c1aebfc29 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -788,34 +788,27 @@ defmodule Pleroma.User do
@spec search_for_admin(%{
query: binary(),
- admin: Pleroma.User.t(),
local: boolean(),
page: number(),
page_size: number()
}) :: {:ok, [Pleroma.User.t()], number()}
def search_for_admin(%{
query: term,
- admin: admin,
local: local,
page: page,
page_size: page_size
}) do
- term = String.trim_leading(term, "@")
+ maybe_local_query = User |> maybe_local_user_query(local)
- local_paginated_query =
- User
- |> maybe_local_user_query(local)
- |> paginate(page, page_size)
+ search_query = from(u in maybe_local_query, where: ilike(u.nickname, ^"%#{term}%"))
+ count = search_query |> Repo.aggregate(:count, :id)
- search_query = fts_search_subquery(term, local_paginated_query)
-
- count =
- term
- |> fts_search_subquery()
- |> maybe_local_user_query(local)
- |> Repo.aggregate(:count, :id)
+ results =
+ search_query
+ |> paginate(page, page_size)
+ |> Repo.all()
- {:ok, do_search(search_query, admin), count}
+ {:ok, results, count}
end
def search(query, resolve \\ false, for_user \\ nil) do