commit: 78484fe0ef48079d3ca811c475b109a3306b3e5c
parent: 93fbf399543fead24f8066d0cba33a0a51b89dd3
Author: feld <feld@feld.me>
Date: Mon, 10 Aug 2020 17:16:38 +0000
Merge branch 'admin-active-filter' into 'develop'
Admin API: Filter out unapproved users when the `active` filter is on
Closes #2037
See merge request pleroma/pleroma!2872
Diffstat:
2 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/lib/pleroma/user/query.ex b/lib/pleroma/user/query.ex
@@ -130,6 +130,7 @@ 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
diff --git a/test/web/admin_api/controllers/admin_api_controller_test.exs b/test/web/admin_api/controllers/admin_api_controller_test.exs
@@ -1164,6 +1164,27 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
}
end
+ test "`active` filters out users pending approval", %{token: token} do
+ insert(:user, approval_pending: true)
+ %{id: user_id} = insert(:user, approval_pending: false)
+ %{id: admin_id} = token.user
+
+ conn =
+ build_conn()
+ |> assign(:user, token.user)
+ |> assign(:token, token)
+ |> get("/api/pleroma/admin/users?filters=active")
+
+ assert %{
+ "count" => 2,
+ "page_size" => 50,
+ "users" => [
+ %{"id" => ^admin_id},
+ %{"id" => ^user_id}
+ ]
+ } = json_response(conn, 200)
+ end
+
test "it works with multiple filters" do
admin = insert(:user, nickname: "john", is_admin: true)
token = insert(:oauth_admin_token, user: admin)