diff options
author | scarlett <nia@netbsd.org> | 2018-10-29 23:08:56 +0000 |
---|---|---|
committer | scarlett <nia@netbsd.org> | 2018-10-29 23:13:15 +0000 |
commit | b92e38d2d4c05da19b00162d7ca35f1905b44a80 (patch) | |
tree | ad29dab9b2c755e813b0258dcbf56b9a8f79ec69 /lib | |
parent | a880e0a5278110031ad14bfd5c24e8054e878d9d (diff) | |
download | pleroma-b92e38d2d4c05da19b00162d7ca35f1905b44a80.tar.gz |
Add user reactivation task.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mix/tasks/deactivate_user.ex | 2 | ||||
-rw-r--r-- | lib/mix/tasks/reactivate_user.ex | 13 | ||||
-rw-r--r-- | lib/pleroma/user.ex | 4 | ||||
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 2 |
4 files changed, 17 insertions, 4 deletions
diff --git a/lib/mix/tasks/deactivate_user.ex b/lib/mix/tasks/deactivate_user.ex index 96b3db6e4..f18541787 100644 --- a/lib/mix/tasks/deactivate_user.ex +++ b/lib/mix/tasks/deactivate_user.ex @@ -2,7 +2,7 @@ defmodule Mix.Tasks.DeactivateUser do use Mix.Task alias Pleroma.User - @shortdoc "Toggle deactivation status for a user" + @shortdoc "Deactivate a user" def run([nickname]) do Mix.Task.run("app.start") diff --git a/lib/mix/tasks/reactivate_user.ex b/lib/mix/tasks/reactivate_user.ex new file mode 100644 index 000000000..40bd068ea --- /dev/null +++ b/lib/mix/tasks/reactivate_user.ex @@ -0,0 +1,13 @@ +defmodule Mix.Tasks.ReactivateUser do + use Mix.Task + alias Pleroma.User + + @shortdoc "Reactivate a user" + def run([nickname]) do + Mix.Task.run("app.start") + + with user <- User.get_by_nickname(nickname) do + User.deactivate(user, false) + end + end +end diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 0c9fa559a..bb5b91c61 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -622,8 +622,8 @@ defmodule Pleroma.User do ) end - def deactivate(%User{} = user) do - new_info = Map.put(user.info, "deactivated", true) + def deactivate(%User{} = user, status \\ true) do + new_info = Map.put(user.info, "deactivated", status) cs = User.info_changeset(user, %{info: new_info}) update_and_set_cache(cs) end diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 537b99f31..5a81f6fa2 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -44,7 +44,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do defp check_actor_is_active(actor) do if not is_nil(actor) do with user <- User.get_cached_by_ap_id(actor), - nil <- user.info["deactivated"] do + false <- !!user.info["deactivated"] do :ok else _e -> :reject |