Merge branch 'optional-retry-queue' into 'develop'
[akkoma] / lib / mix / tasks / set_admin.ex
1 defmodule Mix.Tasks.SetAdmin do
2 use Mix.Task
3 alias Pleroma.User
4
5 @doc """
6 Sets admin status
7 Usage: set_admin nickname [true|false]
8 """
9 def run([nickname | rest]) do
10 Application.ensure_all_started(:pleroma)
11
12 status =
13 case rest do
14 [status] -> status == "true"
15 _ -> true
16 end
17
18 with %User{local: true} = user <- User.get_by_nickname(nickname) do
19 info =
20 user.info
21 |> Map.put("is_admin", !!status)
22
23 cng = User.info_changeset(user, %{info: info})
24 {:ok, user} = User.update_and_set_cache(cng)
25
26 IO.puts("Admin status of #{nickname}: #{user.info["is_admin"]}")
27 else
28 _ ->
29 IO.puts("No local user #{nickname}")
30 end
31 end
32 end