logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
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:

Mlib/pleroma/user/query.ex1+
Mtest/web/admin_api/controllers/admin_api_controller_test.exs21+++++++++++++++++++++
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)