summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaelwenn <contact+git.pleroma.social@hacktivis.me>2021-01-20 20:07:30 +0000
committerHaelwenn <contact+git.pleroma.social@hacktivis.me>2021-01-20 20:07:30 +0000
commit91f74418b7758ffff9ef7356b1b2c2d7a9f884b7 (patch)
tree346c3d3f3e693ac48fef084c4c8f197442ca5399
parent3802718f80675ae4702b35bfc0da0454f7d4f48a (diff)
parentdfc4cb6ebd61754ee5865c33092c5e1b782c12cd (diff)
Merge branch 'fix/active-user-query' into 'develop'
Active users must be confirmed, and other related fixes See merge request pleroma/pleroma!3267
-rw-r--r--lib/pleroma/user.ex10
-rw-r--r--lib/pleroma/user/query.ex1
-rw-r--r--test/pleroma/user_test.exs37
-rw-r--r--test/pleroma/web/activity_pub/side_effects_test.exs8
4 files changed, 9 insertions, 47 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index d81abbd2b..2aeacf816 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -289,15 +289,7 @@ defmodule Pleroma.User do
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, is_approved: false}), do: :approval_pending
-
- def account_status(%User{local: true, is_confirmed: false}) do
- if Config.get([:instance, :account_activation_required]) do
- :confirmation_pending
- else
- :active
- end
- end
-
+ def account_status(%User{local: true, is_confirmed: false}), do: :confirmation_pending
def account_status(%User{}), do: :active
@spec visible_for(User.t(), User.t() | nil) ::
diff --git a/lib/pleroma/user/query.ex b/lib/pleroma/user/query.ex
index 74ef1158a..4076925aa 100644
--- a/lib/pleroma/user/query.ex
+++ b/lib/pleroma/user/query.ex
@@ -139,6 +139,7 @@ defmodule Pleroma.User.Query do
defp compose_query({:active, _}, query) do
User.restrict_deactivated(query)
|> where([u], u.is_approved == true)
+ |> where([u], u.is_confirmed == true)
end
defp compose_query({:legacy_active, _}, query) do
diff --git a/test/pleroma/user_test.exs b/test/pleroma/user_test.exs
index 617d9b755..7e1e75404 100644
--- a/test/pleroma/user_test.exs
+++ b/test/pleroma/user_test.exs
@@ -1563,31 +1563,15 @@ defmodule Pleroma.UserTest do
end
end
- describe "delete/1 when confirmation is pending" do
- setup do
- user = insert(:user, is_confirmed: false)
- {:ok, user: user}
- end
+ test "delete/1 when confirmation is pending deletes the user" do
+ clear_config([:instance, :account_activation_required], true)
+ user = insert(:user, is_confirmed: false)
- test "deletes user from database when activation required", %{user: user} do
- clear_config([:instance, :account_activation_required], true)
-
- {:ok, job} = User.delete(user)
- {:ok, _} = ObanHelpers.perform(job)
-
- refute User.get_cached_by_id(user.id)
- refute User.get_by_id(user.id)
- end
-
- test "deactivates user when activation is not required", %{user: user} do
- clear_config([:instance, :account_activation_required], false)
-
- {:ok, job} = User.delete(user)
- {:ok, _} = ObanHelpers.perform(job)
+ {:ok, job} = User.delete(user)
+ {:ok, _} = ObanHelpers.perform(job)
- assert %{deactivated: true} = User.get_cached_by_id(user.id)
- assert %{deactivated: true} = User.get_by_id(user.id)
- end
+ refute User.get_cached_by_id(user.id)
+ refute User.get_by_id(user.id)
end
test "delete/1 when approval is pending deletes the user" do
@@ -1830,13 +1814,6 @@ defmodule Pleroma.UserTest do
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, 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 being viewed by a privileged account (confirmation required)" do
Pleroma.Config.put([:instance, :account_activation_required], true)
diff --git a/test/pleroma/web/activity_pub/side_effects_test.exs b/test/pleroma/web/activity_pub/side_effects_test.exs
index e3f45ecdb..13167f50a 100644
--- a/test/pleroma/web/activity_pub/side_effects_test.exs
+++ b/test/pleroma/web/activity_pub/side_effects_test.exs
@@ -165,14 +165,6 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do
{:ok, delete: delete_user, user: user}
end
- test "when activation is not required", %{delete: delete, user: user} do
- clear_config([:instance, :account_activation_required], false)
- {:ok, _, _} = SideEffects.handle(delete)
- ObanHelpers.perform_all()
-
- assert User.get_cached_by_id(user.id).deactivated
- end
-
test "when activation is required", %{delete: delete, user: user} do
clear_config([:instance, :account_activation_required], true)
{:ok, _, _} = SideEffects.handle(delete)