Change user.confirmation_pending field to user.is_confirmed

This commit is contained in:
Mark Felder 2020-10-13 14:29:34 -05:00 committed by Mark Felder
parent cf367fdbd5
commit d36182c088
29 changed files with 121 additions and 101 deletions

View File

@ -34,7 +34,7 @@ def run(["resend_confirmation_emails"]) do
Pleroma.User.Query.build(%{ Pleroma.User.Query.build(%{
local: true, local: true,
deactivated: false, deactivated: false,
confirmation_pending: true, is_confirmed: false,
invisible: false invisible: false
}) })
|> Pleroma.Repo.chunk_stream(500) |> Pleroma.Repo.chunk_stream(500)

View File

@ -74,7 +74,7 @@ def run(["new", nickname, email | rest]) do
bio: bio bio: bio
} }
changeset = User.register_changeset(%User{}, params, need_confirmation: false) changeset = User.register_changeset(%User{}, params, is_confirmed: true)
{:ok, _user} = User.register(changeset) {:ok, _user} = User.register(changeset)
shell_info("User #{nickname} created") shell_info("User #{nickname} created")
@ -351,7 +351,7 @@ def run(["confirm", nickname]) do
with %User{} = user <- User.get_cached_by_nickname(nickname) do with %User{} = user <- User.get_cached_by_nickname(nickname) do
{:ok, user} = User.confirm(user) {:ok, user} = User.confirm(user)
message = if user.confirmation_pending, do: "needs", else: "doesn't need" message = if !user.is_confirmed, do: "needs", else: "doesn't need"
shell_info("#{nickname} #{message} confirmation.") shell_info("#{nickname} #{message} confirmation.")
else else
@ -457,7 +457,7 @@ defp set_locked(user, value) do
defp set_confirmed(user, value) do defp set_confirmed(user, value) do
{:ok, user} = User.need_confirmation(user, !value) {:ok, user} = User.need_confirmation(user, !value)
shell_info("Confirmation pending status of #{user.nickname}: #{user.confirmation_pending}") shell_info("Confirmation status of #{user.nickname}: #{user.is_confirmed}")
user user
end end
end end

View File

@ -110,7 +110,7 @@ defmodule Pleroma.User do
field(:follower_count, :integer, default: 0) field(:follower_count, :integer, default: 0)
field(:following_count, :integer, default: 0) field(:following_count, :integer, default: 0)
field(:is_locked, :boolean, default: false) 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(:password_reset_pending, :boolean, default: false)
field(:approval_pending, :boolean, default: false) field(:approval_pending, :boolean, default: false)
field(:registration_reason, :string, default: nil) field(:registration_reason, :string, default: nil)
@ -290,7 +290,7 @@ def account_status(%User{deactivated: true}), do: :deactivated
def account_status(%User{password_reset_pending: true}), do: :password_reset_pending 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, approval_pending: true}), 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 if Config.get([:instance, :account_activation_required]) do
:confirmation_pending :confirmation_pending
else else
@ -808,7 +808,7 @@ def register(%Ecto.Changeset{} = changeset) do
end end
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 with {:ok, _} <- try_send_confirmation_email(user) do
{:ok, user} {:ok, user}
end end
@ -821,7 +821,7 @@ def post_register_action(%User{approval_pending: true} = user) do
end end
end end
def post_register_action(%User{approval_pending: false, confirmation_pending: false} = user) do def post_register_action(%User{approval_pending: false, is_confirmed: true} = user) do
with {:ok, user} <- autofollow_users(user), with {:ok, user} <- autofollow_users(user),
{:ok, _} <- autofollowing_users(user), {:ok, _} <- autofollowing_users(user),
{:ok, user} <- set_cache(user), {:ok, user} <- set_cache(user),
@ -882,7 +882,7 @@ def send_welcome_email(%User{email: email} = user) when is_binary(email) do
def send_welcome_email(_), do: {:ok, :noop} def send_welcome_email(_), do: {:ok, :noop}
@spec try_send_confirmation_email(User.t()) :: {:ok, :enqueued | :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 when is_binary(email) do
if Config.get([:instance, :account_activation_required]) do if Config.get([:instance, :account_activation_required]) do
send_confirmation_email(user) send_confirmation_email(user)
@ -1642,7 +1642,7 @@ def confirm(users) when is_list(users) do
end) end)
end end
def confirm(%User{confirmation_pending: true} = user) do def confirm(%User{is_confirmed: false} = user) do
with chg <- confirmation_changeset(user, need_confirmation: false), with chg <- confirmation_changeset(user, need_confirmation: false),
{:ok, user} <- update_and_set_cache(chg) do {:ok, user} <- update_and_set_cache(chg) do
post_register_action(user) post_register_action(user)
@ -1682,7 +1682,7 @@ def purge_user_changeset(user) do
follower_count: 0, follower_count: 0,
following_count: 0, following_count: 0,
is_locked: false, is_locked: false,
confirmation_pending: false, is_confirmed: true,
password_reset_pending: false, password_reset_pending: false,
approval_pending: false, approval_pending: false,
registration_reason: nil, registration_reason: nil,
@ -2313,17 +2313,17 @@ def confirmation_changeset(user, need_confirmation: need_confirmation?) do
params = params =
if need_confirmation? do if need_confirmation? do
%{ %{
confirmation_pending: true, is_confirmed: false,
confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64() confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64()
} }
else else
%{ %{
confirmation_pending: false, is_confirmed: true,
confirmation_token: nil confirmation_token: nil
} }
end end
cast(user, params, [:confirmation_pending, :confirmation_token]) cast(user, params, [:is_confirmed, :confirmation_token])
end end
@spec approval_changeset(User.t(), keyword()) :: Changeset.t() @spec approval_changeset(User.t(), keyword()) :: Changeset.t()

View File

@ -155,7 +155,7 @@ defp compose_query({:deactivated, true}, query) do
end end
defp compose_query({:confirmation_pending, bool}, query) do defp compose_query({:confirmation_pending, bool}, query) do
where(query, [u], u.confirmation_pending == ^bool) where(query, [u], u.is_confirmed != ^bool)
end end
defp compose_query({:need_approval, _}, query) do defp compose_query({:need_approval, _}, query) do
@ -163,7 +163,7 @@ defp compose_query({:need_approval, _}, query) do
end end
defp compose_query({:unconfirmed, _}, query) do defp compose_query({:unconfirmed, _}, query) do
where(query, [u], u.confirmation_pending) where(query, [u], u.is_confirmed == false)
end end
defp compose_query({:followers, %User{id: id}}, query) do defp compose_query({:followers, %User{id: id}}, query) do

View File

@ -77,7 +77,7 @@ def render("show.json", %{user: user}) do
"local" => user.local, "local" => user.local,
"roles" => User.roles(user), "roles" => User.roles(user),
"tags" => user.tags || [], "tags" => user.tags || [],
"confirmation_pending" => user.confirmation_pending, "is_confirmed" => user.is_confirmed,
"approval_pending" => user.approval_pending, "approval_pending" => user.approval_pending,
"url" => user.uri || user.ap_id, "url" => user.uri || user.ap_id,
"registration_reason" => user.registration_reason, "registration_reason" => user.registration_reason,

View File

@ -191,7 +191,7 @@ defp account_admin do
moderator: %Schema{type: :boolean} moderator: %Schema{type: :boolean}
} }
}, },
confirmation_pending: %Schema{type: :boolean} is_confirmed: %Schema{type: :boolean}
}) })
} }
end end

View File

@ -142,7 +142,7 @@ def admin_account do
} }
}, },
tags: %Schema{type: :string}, tags: %Schema{type: :string},
confirmation_pending: %Schema{type: :string} is_confirmed: %Schema{type: :string}
} }
} }
end end

View File

@ -236,7 +236,7 @@ def chats_response do
"account" => %{ "account" => %{
"pleroma" => %{ "pleroma" => %{
"is_admin" => false, "is_admin" => false,
"confirmation_pending" => false, "is_confirmed" => true,
"hide_followers_count" => false, "hide_followers_count" => false,
"is_moderator" => false, "is_moderator" => false,
"hide_favorites" => true, "hide_favorites" => true,

View File

@ -48,7 +48,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do
}, },
background_image: %Schema{type: :string, nullable: true, format: :uri}, background_image: %Schema{type: :string, nullable: true, format: :uri},
chat_token: %Schema{type: :string}, chat_token: %Schema{type: :string},
confirmation_pending: %Schema{ is_confirmed: %Schema{
type: :boolean, type: :boolean,
description: description:
"whether the user account is waiting on email confirmation to be activated" "whether the user account is waiting on email confirmation to be activated"
@ -166,7 +166,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Account do
"pleroma" => %{ "pleroma" => %{
"allow_following_move" => true, "allow_following_move" => true,
"background_image" => nil, "background_image" => nil,
"confirmation_pending" => true, "is_confirmed" => false,
"hide_favorites" => true, "hide_favorites" => true,
"hide_followers" => false, "hide_followers" => false,
"hide_followers_count" => false, "hide_followers_count" => false,

View File

@ -23,7 +23,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Chat do
"account" => %{ "account" => %{
"pleroma" => %{ "pleroma" => %{
"is_admin" => false, "is_admin" => false,
"confirmation_pending" => false, "is_confirmed" => true,
"hide_followers_count" => false, "hide_followers_count" => false,
"is_moderator" => false, "is_moderator" => false,
"hide_favorites" => true, "hide_favorites" => true,

View File

@ -256,7 +256,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
"note" => "Tester Number 6", "note" => "Tester Number 6",
"pleroma" => %{ "pleroma" => %{
"background_image" => nil, "background_image" => nil,
"confirmation_pending" => false, "is_confirmed" => true,
"hide_favorites" => true, "hide_favorites" => true,
"hide_followers" => false, "hide_followers" => false,
"hide_followers_count" => false, "hide_followers_count" => false,

View File

@ -266,7 +266,7 @@ defp do_render("show.json", %{user: user} = opts) do
pleroma: %{ pleroma: %{
ap_id: user.ap_id, ap_id: user.ap_id,
also_known_as: user.also_known_as, also_known_as: user.also_known_as,
confirmation_pending: user.confirmation_pending, is_confirmed: user.is_confirmed,
tags: user.tags, tags: user.tags,
hide_followers_count: user.hide_followers_count, hide_followers_count: user.hide_followers_count,
hide_follows_count: user.hide_follows_count, hide_follows_count: user.hide_follows_count,

View File

@ -30,7 +30,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
def confirm_email(conn, %{"user_id" => uid, "token" => token}) do def confirm_email(conn, %{"user_id" => uid, "token" => token}) do
with %User{} = user <- User.get_cached_by_id(uid), with %User{} = user <- User.get_cached_by_id(uid),
true <- user.local and user.confirmation_pending and user.confirmation_token == token, true <- user.local and !user.is_confirmed and user.confirmation_token == token,
{:ok, _} <- User.confirm(user) do {:ok, _} <- User.confirm(user) do
redirect(conn, to: "/") redirect(conn, to: "/")
end end

View File

@ -0,0 +1,20 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Repo.Migrations.RefactorConfirmationPendingUserField do
use Ecto.Migration
def up do
# Flip the values before we change the meaning of the column
execute("UPDATE users SET confirmation_pending = NOT confirmation_pending;")
execute("ALTER TABLE users RENAME COLUMN confirmation_pending TO is_confirmed;")
execute("ALTER TABLE users ALTER COLUMN is_confirmed SET DEFAULT true;")
end
def down do
execute("UPDATE users SET is_confirmed = NOT is_confirmed;")
execute("ALTER TABLE users RENAME COLUMN is_confirmed TO confirmation_pending;")
execute("ALTER TABLE users ALTER COLUMN confirmation_pending SET DEFAULT false;")
end
end

View File

@ -61,7 +61,7 @@ test "Sends test email with given address" do
test "Sends confirmation emails" do test "Sends confirmation emails" do
local_user1 = local_user1 =
insert(:user, %{ insert(:user, %{
confirmation_pending: true, is_confirmed: false,
confirmation_token: "mytoken", confirmation_token: "mytoken",
deactivated: false, deactivated: false,
email: "local1@pleroma.com", email: "local1@pleroma.com",
@ -70,7 +70,7 @@ test "Sends confirmation emails" do
local_user2 = local_user2 =
insert(:user, %{ insert(:user, %{
confirmation_pending: true, is_confirmed: false,
confirmation_token: "mytoken", confirmation_token: "mytoken",
deactivated: false, deactivated: false,
email: "local2@pleroma.com", email: "local2@pleroma.com",
@ -88,7 +88,7 @@ test "Sends confirmation emails" do
test "Does not send confirmation email to inappropriate users" do test "Does not send confirmation email to inappropriate users" do
# confirmed user # confirmed user
insert(:user, %{ insert(:user, %{
confirmation_pending: false, is_confirmed: true,
confirmation_token: "mytoken", confirmation_token: "mytoken",
deactivated: false, deactivated: false,
email: "confirmed@pleroma.com", email: "confirmed@pleroma.com",

View File

@ -238,7 +238,7 @@ test "All statuses set" do
assert message =~ ~r/Admin status .* true/ assert message =~ ~r/Admin status .* true/
assert_received {:mix_shell, :info, [message]} assert_received {:mix_shell, :info, [message]}
assert message =~ ~r/Confirmation pending .* false/ assert message =~ ~r/Confirmation status.* true/
assert_received {:mix_shell, :info, [message]} assert_received {:mix_shell, :info, [message]}
assert message =~ ~r/Locked status .* true/ assert message =~ ~r/Locked status .* true/
@ -250,7 +250,7 @@ test "All statuses set" do
assert user.is_moderator assert user.is_moderator
assert user.is_locked assert user.is_locked
assert user.is_admin assert user.is_admin
refute user.confirmation_pending assert user.is_confirmed
end end
test "All statuses unset" do test "All statuses unset" do
@ -259,7 +259,7 @@ test "All statuses unset" do
is_locked: true, is_locked: true,
is_moderator: true, is_moderator: true,
is_admin: true, is_admin: true,
confirmation_pending: true is_confirmed: false
) )
Mix.Tasks.Pleroma.User.run([ Mix.Tasks.Pleroma.User.run([
@ -275,7 +275,7 @@ test "All statuses unset" do
assert message =~ ~r/Admin status .* false/ assert message =~ ~r/Admin status .* false/
assert_received {:mix_shell, :info, [message]} assert_received {:mix_shell, :info, [message]}
assert message =~ ~r/Confirmation pending .* true/ assert message =~ ~r/Confirmation status.* false/
assert_received {:mix_shell, :info, [message]} assert_received {:mix_shell, :info, [message]}
assert message =~ ~r/Locked status .* false/ assert message =~ ~r/Locked status .* false/
@ -287,7 +287,7 @@ test "All statuses unset" do
refute user.is_moderator refute user.is_moderator
refute user.is_locked refute user.is_locked
refute user.is_admin refute user.is_admin
assert user.confirmation_pending refute user.is_confirmed
end end
test "no user to set status" do test "no user to set status" do
@ -464,27 +464,27 @@ test "it prints an error message when user is not exist" do
describe "running confirm" do describe "running confirm" do
test "user is confirmed" do test "user is confirmed" do
%{id: id, nickname: nickname} = insert(:user, confirmation_pending: false) %{id: id, nickname: nickname} = insert(:user, is_confirmed: true)
assert :ok = Mix.Tasks.Pleroma.User.run(["confirm", nickname]) assert :ok = Mix.Tasks.Pleroma.User.run(["confirm", nickname])
assert_received {:mix_shell, :info, [message]} assert_received {:mix_shell, :info, [message]}
assert message == "#{nickname} doesn't need confirmation." assert message == "#{nickname} doesn't need confirmation."
user = Repo.get(User, id) user = Repo.get(User, id)
refute user.confirmation_pending assert user.is_confirmed
refute user.confirmation_token refute user.confirmation_token
end end
test "user is not confirmed" do test "user is not confirmed" do
%{id: id, nickname: nickname} = %{id: id, nickname: nickname} =
insert(:user, confirmation_pending: true, confirmation_token: "some token") insert(:user, is_confirmed: false, confirmation_token: "some token")
assert :ok = Mix.Tasks.Pleroma.User.run(["confirm", nickname]) assert :ok = Mix.Tasks.Pleroma.User.run(["confirm", nickname])
assert_received {:mix_shell, :info, [message]} assert_received {:mix_shell, :info, [message]}
assert message == "#{nickname} doesn't need confirmation." assert message == "#{nickname} doesn't need confirmation."
user = Repo.get(User, id) user = Repo.get(User, id)
refute user.confirmation_pending assert user.is_confirmed
refute user.confirmation_token refute user.confirmation_token
end end
@ -579,29 +579,29 @@ test "it prints an error message when user is not exist" do
describe "bulk confirm and unconfirm" do describe "bulk confirm and unconfirm" do
test "confirm all" do test "confirm all" do
user1 = insert(:user, confirmation_pending: true) user1 = insert(:user, is_confirmed: false)
user2 = insert(:user, confirmation_pending: true) user2 = insert(:user, is_confirmed: false)
assert user1.confirmation_pending refute user1.is_confirmed
assert user2.confirmation_pending refute user2.is_confirmed
Mix.Tasks.Pleroma.User.run(["confirm_all"]) Mix.Tasks.Pleroma.User.run(["confirm_all"])
user1 = User.get_cached_by_nickname(user1.nickname) user1 = User.get_cached_by_nickname(user1.nickname)
user2 = User.get_cached_by_nickname(user2.nickname) user2 = User.get_cached_by_nickname(user2.nickname)
refute user1.confirmation_pending assert user1.is_confirmed
refute user2.confirmation_pending assert user2.is_confirmed
end end
test "unconfirm all" do test "unconfirm all" do
user1 = insert(:user, confirmation_pending: false) user1 = insert(:user, is_confirmed: true)
user2 = insert(:user, confirmation_pending: false) user2 = insert(:user, is_confirmed: true)
admin = insert(:user, is_admin: true, confirmation_pending: false) admin = insert(:user, is_admin: true, is_confirmed: true)
mod = insert(:user, is_moderator: true, confirmation_pending: false) mod = insert(:user, is_moderator: true, is_confirmed: true)
refute user1.confirmation_pending assert user1.is_confirmed
refute user2.confirmation_pending assert user2.is_confirmed
Mix.Tasks.Pleroma.User.run(["unconfirm_all"]) Mix.Tasks.Pleroma.User.run(["unconfirm_all"])
@ -610,10 +610,10 @@ test "unconfirm all" do
admin = User.get_cached_by_nickname(admin.nickname) admin = User.get_cached_by_nickname(admin.nickname)
mod = User.get_cached_by_nickname(mod.nickname) mod = User.get_cached_by_nickname(mod.nickname)
assert user1.confirmation_pending refute user1.is_confirmed
assert user2.confirmation_pending refute user2.is_confirmed
refute admin.confirmation_pending assert admin.is_confirmed
refute mod.confirmation_pending assert mod.is_confirmed
end end
end end
end end

View File

@ -640,7 +640,7 @@ test "it creates a confirmed user" do
{:ok, user} = Repo.insert(changeset) {:ok, user} = Repo.insert(changeset)
refute user.confirmation_pending assert user.is_confirmed
end end
end end
@ -661,7 +661,7 @@ test "it creates unconfirmed user" do
{:ok, user} = Repo.insert(changeset) {:ok, user} = Repo.insert(changeset)
assert user.confirmation_pending refute user.is_confirmed
assert user.confirmation_token assert user.confirmation_token
end end
@ -671,7 +671,7 @@ test "it creates confirmed user if :confirmed option is given" do
{:ok, user} = Repo.insert(changeset) {:ok, user} = Repo.insert(changeset)
refute user.confirmation_pending assert user.is_confirmed
refute user.confirmation_token refute user.confirmation_token
end end
end end
@ -1443,17 +1443,17 @@ test "approving an approved user does not trigger post-register actions" do
describe "confirm" do describe "confirm" do
test "confirms a user" do test "confirms a user" do
user = insert(:user, confirmation_pending: true) user = insert(:user, is_confirmed: false)
assert true == user.confirmation_pending refute user.is_confirmed
{:ok, user} = User.confirm(user) {:ok, user} = User.confirm(user)
assert false == user.confirmation_pending assert user.is_confirmed
end end
test "confirms a list of users" do test "confirms a list of users" do
unconfirmed_users = [ unconfirmed_users = [
insert(:user, confirmation_pending: true), insert(:user, is_confirmed: false),
insert(:user, confirmation_pending: true), insert(:user, is_confirmed: false),
insert(:user, confirmation_pending: true) insert(:user, is_confirmed: false)
] ]
{:ok, users} = User.confirm(unconfirmed_users) {:ok, users} = User.confirm(unconfirmed_users)
@ -1461,13 +1461,13 @@ test "confirms a list of users" do
assert Enum.count(users) == 3 assert Enum.count(users) == 3
Enum.each(users, fn user -> Enum.each(users, fn user ->
assert false == user.confirmation_pending assert user.is_confirmed
end) end)
end end
test "sends approval emails when `approval_pending: true`" do test "sends approval emails when `approval_pending: true`" do
admin = insert(:user, is_admin: true) admin = insert(:user, is_admin: true)
user = insert(:user, confirmation_pending: true, approval_pending: true) user = insert(:user, is_confirmed: false, approval_pending: true)
User.confirm(user) User.confirm(user)
ObanHelpers.perform_all() ObanHelpers.perform_all()
@ -1494,7 +1494,7 @@ test "sends approval emails when `approval_pending: true`" do
end end
test "confirming a confirmed user does not trigger post-register actions" do test "confirming a confirmed user does not trigger post-register actions" do
user = insert(:user, confirmation_pending: false, approval_pending: true) user = insert(:user, is_confirmed: true, approval_pending: true)
User.confirm(user) User.confirm(user)
ObanHelpers.perform_all() ObanHelpers.perform_all()
@ -1565,7 +1565,7 @@ test "it deactivates a user, all follow relationships and all activities", %{use
describe "delete/1 when confirmation is pending" do describe "delete/1 when confirmation is pending" do
setup do setup do
user = insert(:user, confirmation_pending: true) user = insert(:user, is_confirmed: false)
{:ok, user: user} {:ok, user: user}
end end
@ -1616,7 +1616,7 @@ test "delete/1 purges a user when they wouldn't be fully deleted" do
follower_count: 9, follower_count: 9,
following_count: 9001, following_count: 9001,
is_locked: true, is_locked: true,
confirmation_pending: true, is_confirmed: false,
password_reset_pending: true, password_reset_pending: true,
approval_pending: true, approval_pending: true,
registration_reason: "ahhhhh", registration_reason: "ahhhhh",
@ -1658,7 +1658,7 @@ test "delete/1 purges a user when they wouldn't be fully deleted" do
follower_count: 0, follower_count: 0,
following_count: 0, following_count: 0,
is_locked: false, is_locked: false,
confirmation_pending: false, is_confirmed: true,
password_reset_pending: false, password_reset_pending: false,
approval_pending: false, approval_pending: false,
registration_reason: nil, registration_reason: nil,
@ -1729,13 +1729,13 @@ test "User.delete() plugs any possible zombie objects" do
test "return confirmation_pending for unconfirm user" do test "return confirmation_pending for unconfirm user" do
Pleroma.Config.put([:instance, :account_activation_required], true) 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 assert User.account_status(user) == :confirmation_pending
end end
test "return active for confirmed user" do test "return active for confirmed user" do
Pleroma.Config.put([:instance, :account_activation_required], true) 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 assert User.account_status(user) == :active
end end
@ -1750,7 +1750,7 @@ test "returns :password_reset_pending for user with reset password" do
end end
test "returns :deactivated for deactivated user" do 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 assert User.account_status(user) == :deactivated
end end
@ -1758,7 +1758,7 @@ test "returns :approval_pending for unapproved user" do
user = insert(:user, local: true, approval_pending: true) user = insert(:user, local: true, approval_pending: true)
assert User.account_status(user) == :approval_pending assert User.account_status(user) == :approval_pending
user = insert(:user, local: true, confirmation_pending: true, approval_pending: true) user = insert(:user, local: true, is_confirmed: false, approval_pending: true)
assert User.account_status(user) == :approval_pending assert User.account_status(user) == :approval_pending
end end
end end
@ -1815,7 +1815,7 @@ test "returns true when the account is itself" do
test "returns false when the account is unconfirmed and confirmation is required" do test "returns false when the account is unconfirmed and confirmation is required" do
Pleroma.Config.put([:instance, :account_activation_required], true) 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) other_user = insert(:user, local: true)
refute User.visible_for(user, other_user) == :visible refute User.visible_for(user, other_user) == :visible
@ -1824,14 +1824,14 @@ test "returns false when the account is unconfirmed and confirmation is required
test "returns true when the account is unconfirmed and confirmation is required but the account is remote" do 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) 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) other_user = insert(:user, local: true)
assert User.visible_for(user, other_user) == :visible assert User.visible_for(user, other_user) == :visible
end end
test "returns true when the account is unconfirmed and confirmation is not required" do 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) other_user = insert(:user, local: true)
assert User.visible_for(user, other_user) == :visible assert User.visible_for(user, other_user) == :visible
@ -1840,7 +1840,7 @@ test "returns true when the account is unconfirmed and confirmation is not requi
test "returns true when the account is unconfirmed and being viewed by a privileged account (confirmation required)" do 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) 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) other_user = insert(:user, local: true, is_admin: true)
assert User.visible_for(user, other_user) == :visible assert User.visible_for(user, other_user) == :visible

View File

@ -159,7 +159,7 @@ test "creates a notification", %{emoji_react: emoji_react, poster: poster} do
describe "delete users with confirmation pending" do describe "delete users with confirmation pending" do
setup do setup do
user = insert(:user, confirmation_pending: true) user = insert(:user, is_confirmed: false)
{:ok, delete_user_data, _meta} = Builder.delete(user, user.ap_id) {:ok, delete_user_data, _meta} = Builder.delete(user, user.ap_id)
{:ok, delete_user, _meta} = ActivityPub.persist(delete_user_data, local: true) {:ok, delete_user, _meta} = ActivityPub.persist(delete_user_data, local: true)
{:ok, delete: delete_user, user: user} {:ok, delete: delete_user, user: user}

View File

@ -891,10 +891,10 @@ test "GET /instances/:instance/statuses", %{conn: conn} do
describe "PATCH /confirm_email" do describe "PATCH /confirm_email" do
test "it confirms emails of two users", %{conn: conn, admin: admin} do test "it confirms emails of two users", %{conn: conn, admin: admin} do
[first_user, second_user] = insert_pair(:user, confirmation_pending: true) [first_user, second_user] = insert_pair(:user, is_confirmed: false)
assert first_user.confirmation_pending == true refute first_user.is_confirmed
assert second_user.confirmation_pending == true refute second_user.is_confirmed
ret_conn = ret_conn =
patch(conn, "/api/pleroma/admin/users/confirm_email", %{ patch(conn, "/api/pleroma/admin/users/confirm_email", %{
@ -906,8 +906,8 @@ test "it confirms emails of two users", %{conn: conn, admin: admin} do
assert ret_conn.status == 200 assert ret_conn.status == 200
assert first_user.confirmation_pending == true assert User.get_by_id(first_user.id).is_confirmed
assert second_user.confirmation_pending == true assert User.get_by_id(second_user.id).is_confirmed
log_entry = Repo.one(ModerationLog) log_entry = Repo.one(ModerationLog)
@ -920,7 +920,7 @@ test "it confirms emails of two users", %{conn: conn, admin: admin} do
describe "PATCH /resend_confirmation_email" do describe "PATCH /resend_confirmation_email" do
test "it resend emails for two users", %{conn: conn, admin: admin} do test "it resend emails for two users", %{conn: conn, admin: admin} do
[first_user, second_user] = insert_pair(:user, confirmation_pending: true) [first_user, second_user] = insert_pair(:user, is_confirmed: false)
ret_conn = ret_conn =
patch(conn, "/api/pleroma/admin/users/resend_confirmation_email", %{ patch(conn, "/api/pleroma/admin/users/resend_confirmation_email", %{

View File

@ -48,7 +48,7 @@ test "shows activity", %{conn: conn} do
assert account["id"] == actor.id assert account["id"] == actor.id
assert account["nickname"] == actor.nickname assert account["nickname"] == actor.nickname
assert account["deactivated"] == actor.deactivated assert account["deactivated"] == actor.deactivated
assert account["confirmation_pending"] == actor.confirmation_pending assert account["is_confirmed"] == actor.is_confirmed
end end
end end

View File

@ -635,11 +635,11 @@ test "only local users with no query", %{conn: conn, admin: old_admin} do
end end
test "only unconfirmed users", %{conn: conn} do test "only unconfirmed users", %{conn: conn} do
sad_user = insert(:user, nickname: "sadboy", confirmation_pending: true) sad_user = insert(:user, nickname: "sadboy", is_confirmed: false)
old_user = insert(:user, nickname: "oldboy", confirmation_pending: true) old_user = insert(:user, nickname: "oldboy", is_confirmed: false)
insert(:user, nickname: "happyboy", approval_pending: false) insert(:user, nickname: "happyboy", approval_pending: false)
insert(:user, confirmation_pending: false) insert(:user, is_confirmed: true)
result = result =
conn conn
@ -649,7 +649,7 @@ test "only unconfirmed users", %{conn: conn} do
users = users =
Enum.map([old_user, sad_user], fn user -> Enum.map([old_user, sad_user], fn user ->
user_response(user, %{ user_response(user, %{
"confirmation_pending" => true, "is_confirmed" => false,
"approval_pending" => false "approval_pending" => false
}) })
end) end)
@ -960,7 +960,7 @@ defp user_response(user, attrs \\ %{}) do
"tags" => [], "tags" => [],
"avatar" => User.avatar_url(user) |> MediaProxy.url(), "avatar" => User.avatar_url(user) |> MediaProxy.url(),
"display_name" => HTML.strip_tags(user.name || user.nickname), "display_name" => HTML.strip_tags(user.name || user.nickname),
"confirmation_pending" => false, "is_confirmed" => true,
"approval_pending" => false, "approval_pending" => false,
"url" => user.ap_id, "url" => user.ap_id,
"registration_reason" => nil, "registration_reason" => nil,

View File

@ -193,7 +193,7 @@ test "it returns unapproved user" do
end end
test "it returns unconfirmed user" do test "it returns unconfirmed user" do
unconfirmed = insert(:user, confirmation_pending: true) unconfirmed = insert(:user, is_confirmed: false)
insert(:user) insert(:user)
insert(:user) insert(:user)

View File

@ -1027,7 +1027,7 @@ test "registers and logs in without :account_activation_required / :account_appr
user = Repo.preload(token_from_db, :user).user user = Repo.preload(token_from_db, :user).user
assert user assert user
refute user.confirmation_pending assert user.is_confirmed
refute user.approval_pending refute user.approval_pending
end end
@ -1088,7 +1088,7 @@ test "registers but does not log in with :account_activation_required", %{conn:
refute response["token_type"] refute response["token_type"]
user = Repo.get_by(User, email: "lain@example.org") user = Repo.get_by(User, email: "lain@example.org")
assert user.confirmation_pending refute user.is_confirmed
end end
test "registers but does not log in with :account_approval_required", %{conn: conn} do test "registers but does not log in with :account_approval_required", %{conn: conn} do

View File

@ -79,7 +79,7 @@ test "Represent a user account" do
also_known_as: ["https://shitposter.zone/users/shp"], also_known_as: ["https://shitposter.zone/users/shp"],
background_image: "https://example.com/images/asuka_hospital.png", background_image: "https://example.com/images/asuka_hospital.png",
favicon: nil, favicon: nil,
confirmation_pending: false, is_confirmed: true,
tags: [], tags: [],
is_admin: false, is_admin: false,
is_moderator: false, is_moderator: false,
@ -178,7 +178,7 @@ test "Represent a Service(bot) account" do
also_known_as: [], also_known_as: [],
background_image: nil, background_image: nil,
favicon: nil, favicon: nil,
confirmation_pending: false, is_confirmed: true,
tags: [], tags: [],
is_admin: false, is_admin: false,
is_moderator: false, is_moderator: false,

View File

@ -1013,7 +1013,7 @@ test "rejects token exchange for user with confirmation_pending set to true" do
user = user =
insert(:user, insert(:user,
password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt(password), password_hash: Pleroma.Password.Pbkdf2.hash_pwd_salt(password),
confirmation_pending: true is_confirmed: false
) )
app = insert(:oauth_app, scopes: ["read", "write"]) app = insert(:oauth_app, scopes: ["read", "write"])

View File

@ -20,7 +20,7 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do
|> User.confirmation_changeset(need_confirmation: true) |> User.confirmation_changeset(need_confirmation: true)
|> User.update_and_set_cache() |> User.update_and_set_cache()
assert user.confirmation_pending refute user.is_confirmed
[user: user] [user: user]
end end

View File

@ -22,7 +22,7 @@ test "with a user that's not confirmed and a config requiring confirmation, it r
%{conn: conn} do %{conn: conn} do
Pleroma.Config.put([:instance, :account_activation_required], true) Pleroma.Config.put([:instance, :account_activation_required], true)
user = insert(:user, confirmation_pending: true) user = insert(:user, is_confirmed: false)
conn = conn =
conn conn

View File

@ -67,7 +67,7 @@ test "with credentials, with params" do
|> User.confirmation_changeset(need_confirmation: true) |> User.confirmation_changeset(need_confirmation: true)
|> Repo.update() |> Repo.update()
assert user.confirmation_pending refute user.is_confirmed
[user: user] [user: user]
end end
@ -83,7 +83,7 @@ test "it confirms the user account", %{conn: conn, user: user} do
user = User.get_cached_by_id(user.id) user = User.get_cached_by_id(user.id)
refute user.confirmation_pending assert user.is_confirmed
refute user.confirmation_token refute user.confirmation_token
end end

View File

@ -65,7 +65,7 @@ test "it sends confirmation email if :account_activation_required is specified i
{:ok, user} = TwitterAPI.register_user(data) {:ok, user} = TwitterAPI.register_user(data)
ObanHelpers.perform_all() ObanHelpers.perform_all()
assert user.confirmation_pending refute user.is_confirmed
email = Pleroma.Emails.UserEmail.account_confirmation_email(user) email = Pleroma.Emails.UserEmail.account_confirmation_email(user)