X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fmix%2Ftasks%2Fmake_moderator.ex;h=15586dc307beaa21cb6072d756f415dc5332f1a0;hb=c3f562a611c71fb07d4afa6ad6054eda4583f36f;hp=a76b54f4069c973ad7ad2e53f80ef7b13933ff37;hpb=56cfe7185852320b740392e0f58ce096b6cbecb6;p=akkoma diff --git a/lib/mix/tasks/make_moderator.ex b/lib/mix/tasks/make_moderator.ex index a76b54f40..15586dc30 100644 --- a/lib/mix/tasks/make_moderator.ex +++ b/lib/mix/tasks/make_moderator.ex @@ -1,27 +1,37 @@ defmodule Mix.Tasks.SetModerator do + @moduledoc """ + Set moderator to a local user + + Usage: ``mix set_moderator `` + + Example: ``mix set_moderator lain`` + """ + use Mix.Task import Mix.Ecto alias Pleroma.{Repo, User} - @shortdoc "Set moderator status" def run([nickname | rest]) do - ensure_started(Repo, []) + Application.ensure_all_started(:pleroma) - moderator = case rest do - [moderator] -> moderator == "true" - _ -> true - end + moderator = + case rest do + [moderator] -> moderator == "true" + _ -> true + end with %User{local: true} = user <- User.get_by_nickname(nickname) do - info = user.info - |> Map.put("is_moderator", !!moderator) + info = + user.info + |> Map.put("is_moderator", !!moderator) + cng = User.info_changeset(user, %{info: info}) - user = Repo.update!(cng) + {:ok, user} = User.update_and_set_cache(cng) - IO.puts "Moderator status of #{nickname}: #{user.info["is_moderator"]}" + IO.puts("Moderator status of #{nickname}: #{user.info["is_moderator"]}") else _ -> - IO.puts "No local user #{nickname}" + IO.puts("No local user #{nickname}") end end end