diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index f6cca0d06e..10a0f68501 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -195,7 +195,7 @@ defmodule Mix.Tasks.Pleroma.User do def run(["unsubscribe", nickname]) do Common.start_pleroma() - with %User{} = user <- User.get_by_nickname(nickname) do + with %User{local: true} = user <- User.get_by_nickname(nickname) do Mix.shell().info("Deactivating #{user.nickname}") User.deactivate(user) diff --git a/test/tasks/user_test.exs b/test/tasks/user_test.exs index 7b814d171d..8c58a998e1 100644 --- a/test/tasks/user_test.exs +++ b/test/tasks/user_test.exs @@ -161,6 +161,17 @@ defmodule Mix.Tasks.Pleroma.UserTest do assert_received {:mix_shell, :error, [message]} assert message =~ "No user" end + + test "remote user cannot be unsubscribed" do + user = insert(:user, %{local: false}) + + Mix.Tasks.Pleroma.User.run(["unsubscribe", user.nickname]) + + assert_received {:mix_shell, :error, [message]} + assert message =~ "No user #{user.nickname}" + + refute user.info.deactivated + end end describe "running set" do