From ba49c3cf0391b2fbfc1564169c49ad051c6acec6 Mon Sep 17 00:00:00 2001 From: Sachin Joshi Date: Wed, 27 Mar 2019 21:39:53 +0545 Subject: [PATCH] fix "unsubscribe " mix task to only remove local user --- lib/mix/tasks/pleroma/user.ex | 2 +- test/tasks/user_test.exs | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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