Merge branch 'develop' into refactor/approval_pending_user_field

This commit is contained in:
Mark Felder 2021-01-18 12:05:05 -06:00
commit 44a86951a3
105 changed files with 207 additions and 191 deletions

View file

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

View file

@ -238,7 +238,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do
assert message =~ ~r/Admin status .* true/
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 message =~ ~r/Locked status .* true/
@ -250,7 +250,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do
assert user.is_moderator
assert user.is_locked
assert user.is_admin
refute user.confirmation_pending
assert user.is_confirmed
end
test "All statuses unset" do
@ -259,7 +259,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do
is_locked: true,
is_moderator: true,
is_admin: true,
confirmation_pending: true
is_confirmed: false
)
Mix.Tasks.Pleroma.User.run([
@ -275,7 +275,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do
assert message =~ ~r/Admin status .* false/
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 message =~ ~r/Locked status .* false/
@ -287,7 +287,7 @@ defmodule Mix.Tasks.Pleroma.UserTest do
refute user.is_moderator
refute user.is_locked
refute user.is_admin
assert user.confirmation_pending
refute user.is_confirmed
end
test "no user to set status" do
@ -436,13 +436,6 @@ defmodule Mix.Tasks.Pleroma.UserTest do
assert_received {:mix_shell, :info, [message]}
assert message =~ "Invite for token #{invite.token} was revoked."
end
test "it prints an error message when invite is not exist" do
Mix.Tasks.Pleroma.User.run(["revoke_invite", "foo"])
assert_received {:mix_shell, :error, [message]}
assert message =~ "No invite found"
end
end
describe "running delete_activities" do
@ -464,27 +457,27 @@ defmodule Mix.Tasks.Pleroma.UserTest do
describe "running confirm" 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_received {:mix_shell, :info, [message]}
assert message == "#{nickname} doesn't need confirmation."
user = Repo.get(User, id)
refute user.confirmation_pending
assert user.is_confirmed
refute user.confirmation_token
end
test "user is not confirmed" do
%{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_received {:mix_shell, :info, [message]}
assert message == "#{nickname} doesn't need confirmation."
user = Repo.get(User, id)
refute user.confirmation_pending
assert user.is_confirmed
refute user.confirmation_token
end
@ -579,29 +572,29 @@ defmodule Mix.Tasks.Pleroma.UserTest do
describe "bulk confirm and unconfirm" do
test "confirm all" do
user1 = insert(:user, confirmation_pending: true)
user2 = insert(:user, confirmation_pending: true)
user1 = insert(:user, is_confirmed: false)
user2 = insert(:user, is_confirmed: false)
assert user1.confirmation_pending
assert user2.confirmation_pending
refute user1.is_confirmed
refute user2.is_confirmed
Mix.Tasks.Pleroma.User.run(["confirm_all"])
user1 = User.get_cached_by_nickname(user1.nickname)
user2 = User.get_cached_by_nickname(user2.nickname)
refute user1.confirmation_pending
refute user2.confirmation_pending
assert user1.is_confirmed
assert user2.is_confirmed
end
test "unconfirm all" do
user1 = insert(:user, confirmation_pending: false)
user2 = insert(:user, confirmation_pending: false)
admin = insert(:user, is_admin: true, confirmation_pending: false)
mod = insert(:user, is_moderator: true, confirmation_pending: false)
user1 = insert(:user, is_confirmed: true)
user2 = insert(:user, is_confirmed: true)
admin = insert(:user, is_admin: true, is_confirmed: true)
mod = insert(:user, is_moderator: true, is_confirmed: true)
refute user1.confirmation_pending
refute user2.confirmation_pending
assert user1.is_confirmed
assert user2.is_confirmed
Mix.Tasks.Pleroma.User.run(["unconfirm_all"])
@ -610,10 +603,10 @@ defmodule Mix.Tasks.Pleroma.UserTest do
admin = User.get_cached_by_nickname(admin.nickname)
mod = User.get_cached_by_nickname(mod.nickname)
assert user1.confirmation_pending
assert user2.confirmation_pending
refute admin.confirmation_pending
refute mod.confirmation_pending
refute user1.is_confirmed
refute user2.is_confirmed
assert admin.is_confirmed
assert mod.is_confirmed
end
end
end

View file

@ -14,12 +14,12 @@ defmodule Pleroma.Repo.Migrations.ConfirmLoggedInUsersTest do
test "up/0 confirms unconfirmed but previously-logged-in users", %{migration: migration} do
insert_list(25, :oauth_token)
Repo.update_all(User, set: [confirmation_pending: true])
insert_list(5, :user, confirmation_pending: true)
Repo.update_all(User, set: [is_confirmed: false])
insert_list(5, :user, is_confirmed: false)
count =
User
|> where(confirmation_pending: true)
|> where(is_confirmed: false)
|> Repo.aggregate(:count)
assert count == 30
@ -28,7 +28,7 @@ defmodule Pleroma.Repo.Migrations.ConfirmLoggedInUsersTest do
count =
User
|> where(confirmation_pending: true)
|> where(is_confirmed: false)
|> Repo.aggregate(:count)
assert count == 5

View file

@ -640,7 +640,7 @@ defmodule Pleroma.UserTest do
{:ok, user} = Repo.insert(changeset)
refute user.confirmation_pending
assert user.is_confirmed
end
end
@ -661,17 +661,17 @@ defmodule Pleroma.UserTest do
{: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
@ -1443,17 +1443,17 @@ defmodule Pleroma.UserTest do
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)
@ -1461,13 +1461,13 @@ defmodule Pleroma.UserTest do
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 `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, is_approved: false)
User.confirm(user)
ObanHelpers.perform_all()
@ -1494,7 +1494,7 @@ defmodule Pleroma.UserTest do
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, is_approved: false)
User.confirm(user)
ObanHelpers.perform_all()
@ -1565,7 +1565,7 @@ defmodule Pleroma.UserTest do
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
@ -1616,7 +1616,7 @@ defmodule Pleroma.UserTest do
follower_count: 9,
following_count: 9001,
is_locked: true,
confirmation_pending: true,
is_confirmed: false,
password_reset_pending: true,
is_approved: false,
registration_reason: "ahhhhh",
@ -1658,7 +1658,7 @@ defmodule Pleroma.UserTest do
follower_count: 0,
following_count: 0,
is_locked: false,
confirmation_pending: false,
is_confirmed: true,
password_reset_pending: false,
is_approved: true,
registration_reason: nil,
@ -1729,13 +1729,13 @@ defmodule Pleroma.UserTest do
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
@ -1750,7 +1750,7 @@ defmodule Pleroma.UserTest do
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
@ -1758,7 +1758,7 @@ defmodule Pleroma.UserTest do
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, is_approved: false)
assert User.account_status(user) == :approval_pending
end
end
@ -1815,7 +1815,7 @@ defmodule Pleroma.UserTest do
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
@ -1824,14 +1824,14 @@ defmodule Pleroma.UserTest 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)
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
@ -1840,7 +1840,7 @@ defmodule Pleroma.UserTest 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)
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

View file

@ -159,7 +159,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do
describe "delete users with confirmation pending" 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, _meta} = ActivityPub.persist(delete_user_data, local: true)
{:ok, delete: delete_user, user: user}

View file

@ -891,10 +891,10 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
describe "PATCH /confirm_email" 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
assert second_user.confirmation_pending == true
refute first_user.is_confirmed
refute second_user.is_confirmed
ret_conn =
patch(conn, "/api/pleroma/admin/users/confirm_email", %{
@ -906,8 +906,11 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
assert ret_conn.status == 200
assert first_user.confirmation_pending == true
assert second_user.confirmation_pending == true
first_user = User.get_by_id(first_user.id)
second_user = User.get_by_id(second_user.id)
assert first_user.is_confirmed
assert second_user.is_confirmed
log_entry = Repo.one(ModerationLog)
@ -920,7 +923,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
describe "PATCH /resend_confirmation_email" 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 =
patch(conn, "/api/pleroma/admin/users/resend_confirmation_email", %{

View file

@ -48,7 +48,7 @@ defmodule Pleroma.Web.AdminAPI.StatusControllerTest do
assert account["id"] == actor.id
assert account["nickname"] == actor.nickname
assert account["deactivated"] == actor.deactivated
assert account["confirmation_pending"] == actor.confirmation_pending
assert account["is_confirmed"] == actor.is_confirmed
end
end

View file

@ -635,11 +635,11 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
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", is_approved: true)
insert(:user, confirmation_pending: false)
insert(:user, is_confirmed: true)
result =
conn
@ -649,7 +649,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
users =
Enum.map([old_user, sad_user], fn user ->
user_response(user, %{
"confirmation_pending" => true,
"is_confirmed" => false,
"is_approved" => true
})
end)
@ -960,7 +960,7 @@ defmodule Pleroma.Web.AdminAPI.UserControllerTest do
"tags" => [],
"avatar" => User.avatar_url(user) |> MediaProxy.url(),
"display_name" => HTML.strip_tags(user.name || user.nickname),
"confirmation_pending" => false,
"is_confirmed" => true,
"is_approved" => true,
"url" => user.ap_id,
"registration_reason" => nil,

View file

@ -193,7 +193,7 @@ defmodule Pleroma.Web.AdminAPI.SearchTest do
end
test "it returns unconfirmed user" do
unconfirmed = insert(:user, confirmation_pending: true)
unconfirmed = insert(:user, is_confirmed: false)
insert(:user)
insert(:user)

View file

@ -1027,7 +1027,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
user = Repo.preload(token_from_db, :user).user
assert user
refute user.confirmation_pending
assert user.is_confirmed
assert user.is_approved
end
@ -1088,7 +1088,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest 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

View file

@ -79,7 +79,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
also_known_as: ["https://shitposter.zone/users/shp"],
background_image: "https://example.com/images/asuka_hospital.png",
favicon: nil,
confirmation_pending: false,
is_confirmed: true,
tags: [],
is_admin: false,
is_moderator: false,
@ -178,7 +178,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
also_known_as: [],
background_image: nil,
favicon: nil,
confirmation_pending: false,
is_confirmed: true,
tags: [],
is_admin: false,
is_moderator: false,

View file

@ -928,7 +928,7 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do
{: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
@ -1013,7 +1013,7 @@ defmodule Pleroma.Web.OAuth.OAuthControllerTest do
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"])

View file

@ -17,10 +17,10 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do
setup do
{:ok, user} =
insert(:user)
|> User.confirmation_changeset(need_confirmation: true)
|> User.confirmation_changeset(set_confirmation: false)
|> User.update_and_set_cache()
assert user.confirmation_pending
refute user.is_confirmed
[user: user]
end

View file

@ -22,7 +22,7 @@ defmodule Pleroma.Web.Plugs.UserEnabledPlugTest do
%{conn: conn} do
Pleroma.Config.put([:instance, :account_activation_required], true)
user = insert(:user, confirmation_pending: true)
user = insert(:user, is_confirmed: false)
conn =
conn

View file

@ -64,10 +64,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
setup do
{:ok, user} =
insert(:user)
|> User.confirmation_changeset(need_confirmation: true)
|> User.confirmation_changeset(set_confirmation: false)
|> Repo.update()
assert user.confirmation_pending
refute user.is_confirmed
[user: user]
end
@ -83,7 +83,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
user = User.get_cached_by_id(user.id)
refute user.confirmation_pending
assert user.is_confirmed
refute user.confirmation_token
end

View file

@ -65,7 +65,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
{: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)