diff options
author | kaniini <nenolod@gmail.com> | 2019-03-20 00:37:20 +0000 |
---|---|---|
committer | kaniini <nenolod@gmail.com> | 2019-03-20 00:37:20 +0000 |
commit | 606766b010b028d284c7a58161f6a147915449d0 (patch) | |
tree | 46318003878879e731a698d309ac1fcb709978da /lib | |
parent | 9b80203ea5d3a43ccba15f20172c790e127038f9 (diff) | |
parent | 7ac9fff437a2aee3403a769b6cdfb3533771b03e (diff) | |
download | pleroma-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.ex | 23 |
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 |