AdminAPI: Return `approval_pending` with users
authorAlex Gleason <alex@alexgleason.me>
Tue, 14 Jul 2020 18:47:05 +0000 (13:47 -0500)
committerAlex Gleason <alex@alexgleason.me>
Tue, 14 Jul 2020 18:47:05 +0000 (13:47 -0500)
docs/API/admin_api.md
lib/pleroma/web/admin_api/views/account_view.ex
test/web/admin_api/controllers/admin_api_controller_test.exs

index de4e36efa4eef8234d1b36e0c4ea66ca565fc84d..fdd9df6c778bac9a044aa4a66c8369845f175b25 100644 (file)
@@ -47,6 +47,8 @@ Configuration options:
       "tags": array,
       "avatar": string,
       "display_name": string,
+      "confirmation_pending": bool,
+      "approval_pending": bool,
       "registration_reason": string,
     },
     ...
index 78062e5202d3efb0dd476e0a65e8beb34b909644..bdab04ad2200098f4ad3f6c44c718b404bf9fcc7 100644 (file)
@@ -77,6 +77,7 @@ defmodule Pleroma.Web.AdminAPI.AccountView do
       "roles" => User.roles(user),
       "tags" => user.tags || [],
       "confirmation_pending" => user.confirmation_pending,
+      "approval_pending" => user.approval_pending,
       "url" => user.uri || user.ap_id,
       "registration_reason" => user.registration_reason
     }
index 556e8d97aa4b6d8f47a350e1f386b6e3d4dce72f..ccda5df3f1f358cd68df6a622fdf49b6e4458073 100644 (file)
@@ -338,6 +338,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
         "avatar" => User.avatar_url(user) |> MediaProxy.url(),
         "display_name" => HTML.strip_tags(user.name || user.nickname),
         "confirmation_pending" => false,
+        "approval_pending" => false,
         "url" => user.ap_id,
         "registration_reason" => nil
       }
@@ -602,8 +603,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
 
   describe "GET /api/pleroma/admin/users" do
     test "renders users array for the first page", %{conn: conn, admin: admin} do
-      user =
-        insert(:user, local: false, tags: ["foo", "bar"], registration_reason: "I'm a chill dude")
+      user = insert(:user, local: false, tags: ["foo", "bar"])
+      user2 = insert(:user, approval_pending: true, registration_reason: "I'm a chill dude")
 
       conn = get(conn, "/api/pleroma/admin/users?page=1")
 
@@ -619,6 +620,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
             "avatar" => User.avatar_url(admin) |> MediaProxy.url(),
             "display_name" => HTML.strip_tags(admin.name || admin.nickname),
             "confirmation_pending" => false,
+            "approval_pending" => false,
             "url" => admin.ap_id,
             "registration_reason" => nil
           },
@@ -632,14 +634,29 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
             "avatar" => User.avatar_url(user) |> MediaProxy.url(),
             "display_name" => HTML.strip_tags(user.name || user.nickname),
             "confirmation_pending" => false,
+            "approval_pending" => false,
             "url" => user.ap_id,
+            "registration_reason" => nil
+          },
+          %{
+            "deactivated" => user2.deactivated,
+            "id" => user2.id,
+            "nickname" => user2.nickname,
+            "roles" => %{"admin" => false, "moderator" => false},
+            "local" => true,
+            "tags" => [],
+            "avatar" => User.avatar_url(user2) |> MediaProxy.url(),
+            "display_name" => HTML.strip_tags(user2.name || user2.nickname),
+            "confirmation_pending" => false,
+            "approval_pending" => true,
+            "url" => user2.ap_id,
             "registration_reason" => "I'm a chill dude"
           }
         ]
         |> Enum.sort_by(& &1["nickname"])
 
       assert json_response(conn, 200) == %{
-               "count" => 2,
+               "count" => 3,
                "page_size" => 50,
                "users" => users
              }
@@ -706,6 +723,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(user) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(user.name || user.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => user.ap_id,
                    "registration_reason" => nil
                  }
@@ -733,6 +751,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(user) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(user.name || user.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => user.ap_id,
                    "registration_reason" => nil
                  }
@@ -760,6 +779,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(user) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(user.name || user.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => user.ap_id,
                    "registration_reason" => nil
                  }
@@ -787,6 +807,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(user) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(user.name || user.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => user.ap_id,
                    "registration_reason" => nil
                  }
@@ -814,6 +835,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(user) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(user.name || user.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => user.ap_id,
                    "registration_reason" => nil
                  }
@@ -841,6 +863,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(user) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(user.name || user.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => user.ap_id,
                    "registration_reason" => nil
                  }
@@ -863,6 +886,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(user2) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(user2.name || user2.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => user2.ap_id,
                    "registration_reason" => nil
                  }
@@ -897,6 +921,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(user) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(user.name || user.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => user.ap_id,
                    "registration_reason" => nil
                  }
@@ -924,6 +949,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
             "avatar" => User.avatar_url(user) |> MediaProxy.url(),
             "display_name" => HTML.strip_tags(user.name || user.nickname),
             "confirmation_pending" => false,
+            "approval_pending" => false,
             "url" => user.ap_id,
             "registration_reason" => nil
           },
@@ -937,6 +963,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
             "avatar" => User.avatar_url(admin) |> MediaProxy.url(),
             "display_name" => HTML.strip_tags(admin.name || admin.nickname),
             "confirmation_pending" => false,
+            "approval_pending" => false,
             "url" => admin.ap_id,
             "registration_reason" => nil
           },
@@ -950,6 +977,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
             "avatar" => User.avatar_url(old_admin) |> MediaProxy.url(),
             "display_name" => HTML.strip_tags(old_admin.name || old_admin.nickname),
             "confirmation_pending" => false,
+            "approval_pending" => false,
             "url" => old_admin.ap_id,
             "registration_reason" => nil
           }
@@ -982,6 +1010,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
             "avatar" => User.avatar_url(admin) |> MediaProxy.url(),
             "display_name" => HTML.strip_tags(admin.name || admin.nickname),
             "confirmation_pending" => false,
+            "approval_pending" => false,
             "url" => admin.ap_id,
             "registration_reason" => nil
           },
@@ -995,6 +1024,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
             "avatar" => User.avatar_url(second_admin) |> MediaProxy.url(),
             "display_name" => HTML.strip_tags(second_admin.name || second_admin.nickname),
             "confirmation_pending" => false,
+            "approval_pending" => false,
             "url" => second_admin.ap_id,
             "registration_reason" => nil
           }
@@ -1029,6 +1059,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(moderator) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(moderator.name || moderator.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => moderator.ap_id,
                    "registration_reason" => nil
                  }
@@ -1056,6 +1087,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
             "avatar" => User.avatar_url(user1) |> MediaProxy.url(),
             "display_name" => HTML.strip_tags(user1.name || user1.nickname),
             "confirmation_pending" => false,
+            "approval_pending" => false,
             "url" => user1.ap_id,
             "registration_reason" => nil
           },
@@ -1069,6 +1101,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
             "avatar" => User.avatar_url(user2) |> MediaProxy.url(),
             "display_name" => HTML.strip_tags(user2.name || user2.nickname),
             "confirmation_pending" => false,
+            "approval_pending" => false,
             "url" => user2.ap_id,
             "registration_reason" => nil
           }
@@ -1110,6 +1143,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(user) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(user.name || user.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => user.ap_id,
                    "registration_reason" => nil
                  }
@@ -1136,6 +1170,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                    "avatar" => User.avatar_url(admin) |> MediaProxy.url(),
                    "display_name" => HTML.strip_tags(admin.name || admin.nickname),
                    "confirmation_pending" => false,
+                   "approval_pending" => false,
                    "url" => admin.ap_id,
                    "registration_reason" => nil
                  }
@@ -1200,6 +1235,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                "avatar" => User.avatar_url(user) |> MediaProxy.url(),
                "display_name" => HTML.strip_tags(user.name || user.nickname),
                "confirmation_pending" => false,
+               "approval_pending" => false,
                "url" => user.ap_id,
                "registration_reason" => nil
              }