Merge branch 'develop' into refactor/approval_pending_user_field
authorMark Felder <feld@feld.me>
Mon, 18 Jan 2021 18:05:05 +0000 (12:05 -0600)
committerMark Felder <feld@feld.me>
Mon, 18 Jan 2021 18:05:05 +0000 (12:05 -0600)
1  2 
lib/pleroma/user.ex
lib/pleroma/user/query.ex
lib/pleroma/web/admin_api/views/account_view.ex
test/pleroma/user_test.exs
test/pleroma/web/admin_api/controllers/user_controller_test.exs
test/pleroma/web/admin_api/search_test.exs
test/pleroma/web/mastodon_api/controllers/account_controller_test.exs
test/pleroma/web/o_auth/o_auth_controller_test.exs
test/pleroma/web/twitter_api/twitter_api_test.exs

diff --combined lib/pleroma/user.ex
index f6eca010939e347b2943d200b24fb48df895d332,9efc278876a57ed016cf93bfce6eaa3c6c95eb38..d81abbd2b7838131920d30e8a2955bdd7bf22507
@@@ -110,9 -110,9 +110,9 @@@ defmodule Pleroma.User d
      field(:follower_count, :integer, default: 0)
      field(:following_count, :integer, default: 0)
      field(:is_locked, :boolean, default: false)
-     field(:confirmation_pending, :boolean, default: false)
+     field(:is_confirmed, :boolean, default: true)
      field(:password_reset_pending, :boolean, default: false)
 -    field(:approval_pending, :boolean, default: false)
 +    field(:is_approved, :boolean, default: true)
      field(:registration_reason, :string, default: nil)
      field(:confirmation_token, :string, default: nil)
      field(:default_scope, :string, default: "public")
    @spec account_status(User.t()) :: account_status()
    def account_status(%User{deactivated: true}), do: :deactivated
    def account_status(%User{password_reset_pending: true}), do: :password_reset_pending
 -  def account_status(%User{local: true, approval_pending: true}), do: :approval_pending
 +  def account_status(%User{local: true, is_approved: false}), do: :approval_pending
  
-   def account_status(%User{local: true, confirmation_pending: true}) do
+   def account_status(%User{local: true, is_confirmed: false}) do
      if Config.get([:instance, :account_activation_required]) do
        :confirmation_pending
      else
      reason_limit = Config.get([:instance, :registration_reason_length], 500)
      params = Map.put_new(params, :accepts_chat_messages, true)
  
-     need_confirmation? =
-       if is_nil(opts[:need_confirmation]) do
-         Config.get([:instance, :account_activation_required])
+     confirmed? =
+       if is_nil(opts[:confirmed]) do
+         !Config.get([:instance, :account_activation_required])
        else
-         opts[:need_confirmation]
+         opts[:confirmed]
        end
  
 -    need_approval? =
 -      if is_nil(opts[:need_approval]) do
 -        Config.get([:instance, :account_approval_required])
 +    approved? =
 +      if is_nil(opts[:approved]) do
 +        !Config.get([:instance, :account_approval_required])
        else
 -        opts[:need_approval]
 +        opts[:approved]
        end
  
      struct
-     |> confirmation_changeset(need_confirmation: need_confirmation?)
+     |> confirmation_changeset(set_confirmation: confirmed?)
 -    |> approval_changeset(need_approval: need_approval?)
 +    |> approval_changeset(set_approval: approved?)
      |> cast(params, [
        :bio,
        :raw_bio,
      end
    end
  
-   def post_register_action(%User{confirmation_pending: true} = user) do
+   def post_register_action(%User{is_confirmed: false} = user) do
      with {:ok, _} <- try_send_confirmation_email(user) do
        {:ok, user}
      end
    end
  
 -  def post_register_action(%User{approval_pending: true} = user) do
 +  def post_register_action(%User{is_approved: false} = user) do
      with {:ok, _} <- send_user_approval_email(user),
           {:ok, _} <- send_admin_approval_emails(user) do
        {:ok, user}
      end
    end
  
-   def post_register_action(%User{is_approved: true, confirmation_pending: false} = user) do
 -  def post_register_action(%User{approval_pending: false, is_confirmed: true} = user) do
++  def post_register_action(%User{is_approved: true, is_confirmed: true} = user) do
      with {:ok, user} <- autofollow_users(user),
           {:ok, _} <- autofollowing_users(user),
           {:ok, user} <- set_cache(user),
    def send_welcome_email(_), do: {:ok, :noop}
  
    @spec try_send_confirmation_email(User.t()) :: {:ok, :enqueued | :noop}
-   def try_send_confirmation_email(%User{confirmation_pending: true, email: email} = user)
+   def try_send_confirmation_email(%User{is_confirmed: false, email: email} = user)
        when is_binary(email) do
      if Config.get([:instance, :account_activation_required]) do
        send_confirmation_email(user)
      end)
    end
  
 -  def approve(%User{approval_pending: true} = user) do
 -    with chg <- change(user, approval_pending: false),
 +  def approve(%User{is_approved: false} = user) do
 +    with chg <- change(user, is_approved: true),
           {:ok, user} <- update_and_set_cache(chg) do
        post_register_action(user)
        {:ok, user}
      end)
    end
  
-   def confirm(%User{confirmation_pending: true} = user) do
-     with chg <- confirmation_changeset(user, need_confirmation: false),
+   def confirm(%User{is_confirmed: false} = user) do
+     with chg <- confirmation_changeset(user, set_confirmation: true),
           {:ok, user} <- update_and_set_cache(chg) do
        post_register_action(user)
        {:ok, user}
        follower_count: 0,
        following_count: 0,
        is_locked: false,
-       confirmation_pending: false,
+       is_confirmed: true,
        password_reset_pending: false,
 -      approval_pending: false,
 +      is_approved: true,
        registration_reason: nil,
        confirmation_token: nil,
        domain_blocks: [],
      updated_user
    end
  
-   @spec need_confirmation(User.t(), boolean()) :: {:ok, User.t()} | {:error, Changeset.t()}
-   def need_confirmation(%User{} = user, bool) do
+   @spec set_confirmation(User.t(), boolean()) :: {:ok, User.t()} | {:error, Changeset.t()}
+   def set_confirmation(%User{} = user, bool) do
      user
-     |> confirmation_changeset(need_confirmation: bool)
+     |> confirmation_changeset(set_confirmation: bool)
      |> update_and_set_cache()
    end
  
    end
  
    @spec confirmation_changeset(User.t(), keyword()) :: Changeset.t()
-   def confirmation_changeset(user, need_confirmation: need_confirmation?) do
+   def confirmation_changeset(user, set_confirmation: confirmed?) do
      params =
-       if need_confirmation? do
+       if confirmed? do
          %{
-           confirmation_pending: true,
-           confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64()
+           is_confirmed: true,
+           confirmation_token: nil
          }
        else
          %{
-           confirmation_pending: false,
-           confirmation_token: nil
+           is_confirmed: false,
+           confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64()
          }
        end
  
-     cast(user, params, [:confirmation_pending, :confirmation_token])
+     cast(user, params, [:is_confirmed, :confirmation_token])
    end
  
    @spec approval_changeset(User.t(), keyword()) :: Changeset.t()
 -  def approval_changeset(user, need_approval: need_approval?) do
 -    params = if need_approval?, do: %{approval_pending: true}, else: %{approval_pending: false}
 -    cast(user, params, [:approval_pending])
 +  def approval_changeset(user, set_approval: approved?) do
 +    cast(user, %{is_approved: approved?}, [:is_approved])
    end
  
    def add_pinnned_activity(user, %Pleroma.Activity{id: id}) do
index 90548677f7f00725cd3103779c9857f686a2fced,481c41d8c7dee35992bb44d45f852c6091081f27..74ef1158a3ac2db39e325b0ba2c33870125aa34b
@@@ -138,7 -138,7 +138,7 @@@ defmodule Pleroma.User.Query d
  
    defp compose_query({:active, _}, query) do
      User.restrict_deactivated(query)
 -    |> where([u], u.approval_pending == false)
 +    |> where([u], u.is_approved == true)
    end
  
    defp compose_query({:legacy_active, _}, query) do
    end
  
    defp compose_query({:confirmation_pending, bool}, query) do
-     where(query, [u], u.confirmation_pending == ^bool)
+     where(query, [u], u.is_confirmed != ^bool)
    end
  
    defp compose_query({:need_approval, _}, query) do
 -    where(query, [u], u.approval_pending)
 +    where(query, [u], u.is_approved == false)
    end
  
    defp compose_query({:unconfirmed, _}, query) do
-     where(query, [u], u.confirmation_pending)
+     where(query, [u], u.is_confirmed == false)
    end
  
    defp compose_query({:followers, %User{id: id}}, query) do
index 1a876d2721739ee5962fc5a778a51aff81e4b5e1,10d2e698b76dfe4f368742ec5cac2d16a1f966b8..34bf2e67ac6f53e2c09a19983b545d9d68ccf390
@@@ -77,8 -77,8 +77,8 @@@ defmodule Pleroma.Web.AdminAPI.AccountV
        "local" => user.local,
        "roles" => User.roles(user),
        "tags" => user.tags || [],
-       "confirmation_pending" => user.confirmation_pending,
+       "is_confirmed" => user.is_confirmed,
 -      "approval_pending" => user.approval_pending,
 +      "is_approved" => user.is_approved,
        "url" => user.uri || user.ap_id,
        "registration_reason" => user.registration_reason,
        "actor_type" => user.actor_type
index c6d8e1463d8ca69507dac72db0ed5dceefb3113a,ac9db9ffb53ffd62b4477ec0c0a1a0a70db35635..617d9b755fff0b8b6eb734382d31a3dc37c68101
@@@ -640,7 -640,7 +640,7 @@@ defmodule Pleroma.UserTest d
  
        {:ok, user} = Repo.insert(changeset)
  
-       refute user.confirmation_pending
+       assert user.is_confirmed
      end
    end
  
  
        {:ok, user} = Repo.insert(changeset)
  
-       assert user.confirmation_pending
+       refute user.is_confirmed
        assert user.confirmation_token
      end
  
      test "it creates confirmed user if :confirmed option is given" do
-       changeset = User.register_changeset(%User{}, @full_user_data, need_confirmation: false)
+       changeset = User.register_changeset(%User{}, @full_user_data, confirmed: true)
        assert changeset.valid?
  
        {:ok, user} = Repo.insert(changeset)
  
-       refute user.confirmation_pending
+       assert user.is_confirmed
        refute user.confirmation_token
      end
    end
  
        {:ok, user} = Repo.insert(changeset)
  
 -      assert user.approval_pending
 +      refute user.is_approved
        assert user.registration_reason == "I'm a cool guy :)"
      end
  
  
    describe "approve" do
      test "approves a user" do
 -      user = insert(:user, approval_pending: true)
 -      assert true == user.approval_pending
 +      user = insert(:user, is_approved: false)
 +      refute user.is_approved
        {:ok, user} = User.approve(user)
 -      assert false == user.approval_pending
 +      assert user.is_approved
      end
  
      test "approves a list of users" do
        unapproved_users = [
 -        insert(:user, approval_pending: true),
 -        insert(:user, approval_pending: true),
 -        insert(:user, approval_pending: true)
 +        insert(:user, is_approved: false),
 +        insert(:user, is_approved: false),
 +        insert(:user, is_approved: false)
        ]
  
        {:ok, users} = User.approve(unapproved_users)
        assert Enum.count(users) == 3
  
        Enum.each(users, fn user ->
 -        assert false == user.approval_pending
 +        assert user.is_approved
        end)
      end
  
        clear_config([:welcome, :email, :enabled], true)
        clear_config([:welcome, :email, :sender], "tester@test.me")
  
 -      user = insert(:user, approval_pending: true)
 +      user = insert(:user, is_approved: false)
        welcome_user = insert(:user, email: "tester@test.me")
        instance_name = Pleroma.Config.get([:instance, :name])
  
      test "approving an approved user does not trigger post-register actions" do
        clear_config([:welcome, :email, :enabled], true)
  
 -      user = insert(:user, approval_pending: false)
 +      user = insert(:user, is_approved: true)
        User.approve(user)
  
        ObanHelpers.perform_all()
  
    describe "confirm" do
      test "confirms a user" do
-       user = insert(:user, confirmation_pending: true)
-       assert true == user.confirmation_pending
+       user = insert(:user, is_confirmed: false)
+       refute user.is_confirmed
        {:ok, user} = User.confirm(user)
-       assert false == user.confirmation_pending
+       assert user.is_confirmed
      end
  
      test "confirms a list of users" do
        unconfirmed_users = [
-         insert(:user, confirmation_pending: true),
-         insert(:user, confirmation_pending: true),
-         insert(:user, confirmation_pending: true)
+         insert(:user, is_confirmed: false),
+         insert(:user, is_confirmed: false),
+         insert(:user, is_confirmed: false)
        ]
  
        {:ok, users} = User.confirm(unconfirmed_users)
        assert Enum.count(users) == 3
  
        Enum.each(users, fn user ->
-         assert false == user.confirmation_pending
+         assert user.is_confirmed
        end)
      end
  
 -    test "sends approval emails when `approval_pending: true`" do
 +    test "sends approval emails when `is_approved: false`" do
        admin = insert(:user, is_admin: true)
-       user = insert(:user, confirmation_pending: true, is_approved: false)
 -      user = insert(:user, is_confirmed: false, approval_pending: true)
++      user = insert(:user, is_confirmed: false, is_approved: false)
        User.confirm(user)
  
        ObanHelpers.perform_all()
      end
  
      test "confirming a confirmed user does not trigger post-register actions" do
-       user = insert(:user, confirmation_pending: false, is_approved: false)
 -      user = insert(:user, is_confirmed: true, approval_pending: true)
++      user = insert(:user, is_confirmed: true, is_approved: false)
        User.confirm(user)
  
        ObanHelpers.perform_all()
  
    describe "delete/1 when confirmation is pending" do
      setup do
-       user = insert(:user, confirmation_pending: true)
+       user = insert(:user, is_confirmed: false)
        {:ok, user: user}
      end
  
    end
  
    test "delete/1 when approval is pending deletes the user" do
 -    user = insert(:user, approval_pending: true)
 +    user = insert(:user, is_approved: false)
  
      {:ok, job} = User.delete(user)
      {:ok, _} = ObanHelpers.perform(job)
          follower_count: 9,
          following_count: 9001,
          is_locked: true,
-         confirmation_pending: true,
+         is_confirmed: false,
          password_reset_pending: true,
 -        approval_pending: true,
 +        is_approved: false,
          registration_reason: "ahhhhh",
          confirmation_token: "qqqq",
          domain_blocks: ["lain.com"],
               follower_count: 0,
               following_count: 0,
               is_locked: false,
-              confirmation_pending: false,
+              is_confirmed: true,
               password_reset_pending: false,
 -             approval_pending: false,
 +             is_approved: true,
               registration_reason: nil,
               confirmation_token: nil,
               domain_blocks: [],
  
      test "return confirmation_pending for unconfirm user" do
        Pleroma.Config.put([:instance, :account_activation_required], true)
-       user = insert(:user, confirmation_pending: true)
+       user = insert(:user, is_confirmed: false)
        assert User.account_status(user) == :confirmation_pending
      end
  
      test "return active for confirmed user" do
        Pleroma.Config.put([:instance, :account_activation_required], true)
-       user = insert(:user, confirmation_pending: false)
+       user = insert(:user, is_confirmed: true)
        assert User.account_status(user) == :active
      end
  
      end
  
      test "returns :deactivated for deactivated user" do
-       user = insert(:user, local: true, confirmation_pending: false, deactivated: true)
+       user = insert(:user, local: true, is_confirmed: true, deactivated: true)
        assert User.account_status(user) == :deactivated
      end
  
      test "returns :approval_pending for unapproved user" do
 -      user = insert(:user, local: true, approval_pending: true)
 +      user = insert(:user, local: true, is_approved: false)
        assert User.account_status(user) == :approval_pending
  
-       user = insert(:user, local: true, confirmation_pending: true, is_approved: false)
 -      user = insert(:user, local: true, is_confirmed: false, approval_pending: true)
++      user = insert(:user, local: true, is_confirmed: false, is_approved: false)
        assert User.account_status(user) == :approval_pending
      end
    end
      test "returns false when the account is unconfirmed and confirmation is required" do
        Pleroma.Config.put([:instance, :account_activation_required], true)
  
-       user = insert(:user, local: true, confirmation_pending: true)
+       user = insert(:user, local: true, is_confirmed: false)
        other_user = insert(:user, local: true)
  
        refute User.visible_for(user, other_user) == :visible
      test "returns true when the account is unconfirmed and confirmation is required but the account is remote" do
        Pleroma.Config.put([:instance, :account_activation_required], true)
  
-       user = insert(:user, local: false, confirmation_pending: true)
+       user = insert(:user, local: false, is_confirmed: false)
        other_user = insert(:user, local: true)
  
        assert User.visible_for(user, other_user) == :visible
      end
  
      test "returns true when the account is unconfirmed and confirmation is not required" do
-       user = insert(:user, local: true, confirmation_pending: true)
+       user = insert(:user, local: true, is_confirmed: false)
        other_user = insert(:user, local: true)
  
        assert User.visible_for(user, other_user) == :visible
      test "returns true when the account is unconfirmed and being viewed by a privileged account (confirmation required)" do
        Pleroma.Config.put([:instance, :account_activation_required], true)
  
-       user = insert(:user, local: true, confirmation_pending: true)
+       user = insert(:user, local: true, is_confirmed: false)
        other_user = insert(:user, local: true, is_admin: true)
  
        assert User.visible_for(user, other_user) == :visible
index ed094823bad81cdf5f56749a606a82be335b9c2f,569343ed5847f067d872eb61efb212ca7159a922..7f37247a91a9c78b5766c94ed69470b3e15c5ae3
@@@ -429,7 -429,7 +429,7 @@@ defmodule Pleroma.Web.AdminAPI.UserCont
    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"])
 -      user2 = insert(:user, approval_pending: true, registration_reason: "I'm a chill dude")
 +      user2 = insert(:user, is_approved: false, registration_reason: "I'm a chill dude")
  
        conn = get(conn, "/api/pleroma/admin/users?page=1")
  
              user2,
              %{
                "local" => true,
 -              "approval_pending" => true,
 +              "is_approved" => false,
                "registration_reason" => "I'm a chill dude",
                "actor_type" => "Person"
              }
      end
  
      test "only unconfirmed users", %{conn: conn} do
-       sad_user = insert(:user, nickname: "sadboy", confirmation_pending: true)
-       old_user = insert(:user, nickname: "oldboy", confirmation_pending: true)
+       sad_user = insert(:user, nickname: "sadboy", is_confirmed: false)
+       old_user = insert(:user, nickname: "oldboy", is_confirmed: false)
  
 -      insert(:user, nickname: "happyboy", approval_pending: false)
 +      insert(:user, nickname: "happyboy", is_approved: true)
-       insert(:user, confirmation_pending: false)
+       insert(:user, is_confirmed: true)
  
        result =
          conn
        users =
          Enum.map([old_user, sad_user], fn user ->
            user_response(user, %{
-             "confirmation_pending" => true,
+             "is_confirmed" => false,
 -            "approval_pending" => false
 +            "is_approved" => true
            })
          end)
          |> Enum.sort_by(& &1["nickname"])
        user =
          insert(:user,
            nickname: "sadboy",
 -          approval_pending: true,
 +          is_approved: false,
            registration_reason: "Plz let me in!"
          )
  
 -      insert(:user, nickname: "happyboy", approval_pending: false)
 +      insert(:user, nickname: "happyboy", is_approved: true)
  
        conn = get(conn, "/api/pleroma/admin/users?filters=need_approval")
  
        users = [
          user_response(
            user,
 -          %{"approval_pending" => true, "registration_reason" => "Plz let me in!"}
 +          %{"is_approved" => false, "registration_reason" => "Plz let me in!"}
          )
        ]
  
      end
  
      test "`active` filters out users pending approval", %{token: token} do
 -      insert(:user, approval_pending: true)
 -      %{id: user_id} = insert(:user, approval_pending: false)
 +      insert(:user, is_approved: false)
 +      %{id: user_id} = insert(:user, is_approved: true)
        %{id: admin_id} = token.user
  
        conn =
    end
  
    test "PATCH /api/pleroma/admin/users/approve", %{admin: admin, conn: conn} do
 -    user_one = insert(:user, approval_pending: true)
 -    user_two = insert(:user, approval_pending: true)
 +    user_one = insert(:user, is_approved: false)
 +    user_two = insert(:user, is_approved: false)
  
      conn =
        patch(
        )
  
      response = json_response(conn, 200)
 -    assert Enum.map(response["users"], & &1["approval_pending"]) == [false, false]
 +    assert Enum.map(response["users"], & &1["is_approved"]) == [true, true]
  
      log_entry = Repo.one(ModerationLog)
  
        "tags" => [],
        "avatar" => User.avatar_url(user) |> MediaProxy.url(),
        "display_name" => HTML.strip_tags(user.name || user.nickname),
-       "confirmation_pending" => false,
+       "is_confirmed" => true,
 -      "approval_pending" => false,
 +      "is_approved" => true,
        "url" => user.ap_id,
        "registration_reason" => nil,
        "actor_type" => "Person"
index 10ec227d68984a810657da23eb6ebcf8c5179b70,913dc374a6a4034126d9415ed4c44b726d40464f..438ffa7797248289aeffe7ca50834381c0d9d442
@@@ -182,7 -182,7 +182,7 @@@ defmodule Pleroma.Web.AdminAPI.SearchTe
      end
  
      test "it returns unapproved user" do
 -      unapproved = insert(:user, approval_pending: true)
 +      unapproved = insert(:user, is_approved: false)
        insert(:user)
        insert(:user)
  
      end
  
      test "it returns unconfirmed user" do
-       unconfirmed = insert(:user, confirmation_pending: true)
+       unconfirmed = insert(:user, is_confirmed: false)
        insert(:user)
        insert(:user)
  
index 1c310bb07193effd84cbaa5a6060128abd502eee,2d929e532b436559693132f4bd1a616e1346f40e..2f5bfda985faed8b07f278025aae4e583df7488b
@@@ -1027,8 -1027,8 +1027,8 @@@ defmodule Pleroma.Web.MastodonAPI.Accou
        user = Repo.preload(token_from_db, :user).user
  
        assert user
-       refute user.confirmation_pending
+       assert user.is_confirmed
 -      refute user.approval_pending
 +      assert user.is_approved
      end
  
      test "registers but does not log in with :account_activation_required", %{conn: conn} do
        refute response["token_type"]
  
        user = Repo.get_by(User, email: "lain@example.org")
-       assert user.confirmation_pending
+       refute user.is_confirmed
      end
  
      test "registers but does not log in with :account_approval_required", %{conn: conn} do
  
        user = Repo.get_by(User, email: "lain@example.org")
  
 -      assert user.approval_pending
 +      refute user.is_approved
        assert user.registration_reason == "I'm a cool dude, bro"
      end
  
index 646d62da433ac8548dbb17b26171bac5d013e307,337d2650ce89b4b71f82a690d0ab6b04f28d1765..64ee11890d25639ba8d1a2d5e4b9bf02a30c4977
@@@ -928,7 -928,7 +928,7 @@@ defmodule Pleroma.Web.OAuth.OAuthContro
  
        {:ok, user} =
          insert(:user, password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt(password))
-         |> User.confirmation_changeset(need_confirmation: true)
+         |> User.confirmation_changeset(set_confirmation: false)
          |> User.update_and_set_cache()
  
        refute Pleroma.User.account_status(user) == :active
        user =
          insert(:user,
            password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt(password),
-           confirmation_pending: true
+           is_confirmed: false
          )
  
        app = insert(:oauth_app, scopes: ["read", "write"])
        user =
          insert(:user,
            password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt(password),
 -          approval_pending: true
 +          is_approved: false
          )
  
        refute Pleroma.User.account_status(user) == :active
index 05152ee21b6677cf8a3d97bfd7ee44f5a7a3d936,0ed1389f5b5aa3a3973b892ba90845c198784841..129ffdf4d70fad5fe15d66189ef3870d0c47a80b
@@@ -65,7 -65,7 +65,7 @@@ defmodule Pleroma.Web.TwitterAPI.Twitte
      {:ok, user} = TwitterAPI.register_user(data)
      ObanHelpers.perform_all()
  
-     assert user.confirmation_pending
+     refute user.is_confirmed
  
      email = Pleroma.Emails.UserEmail.account_confirmation_email(user)
  
@@@ -97,7 -97,7 +97,7 @@@
      {:ok, user} = TwitterAPI.register_user(data)
      ObanHelpers.perform_all()
  
 -    assert user.approval_pending
 +    refute user.is_approved
  
      user_email = Pleroma.Emails.UserEmail.approval_pending_email(user)
      admin_email = Pleroma.Emails.AdminEmail.new_unapproved_registration(admin, user)