lib/mix/tasks/make_admin.ex: New task
[akkoma] / lib / mix / tasks / generate_password_reset.ex
1 defmodule Mix.Tasks.GeneratePasswordReset do
2 use Mix.Task
3 alias Pleroma.User
4
5 @moduledoc """
6 Generate password reset link for user
7
8 Usage: ``mix generate_password_reset <nickname>``
9
10 Example: ``mix generate_password_reset lain``
11 """
12 def run([nickname]) do
13 Mix.Task.run("app.start")
14
15 with %User{local: true} = user <- User.get_by_nickname(nickname),
16 {:ok, token} <- Pleroma.PasswordResetToken.create_token(user) do
17 IO.puts("Generated password reset token for #{user.nickname}")
18
19 IO.puts(
20 "Url: #{
21 Pleroma.Web.Router.Helpers.util_url(
22 Pleroma.Web.Endpoint,
23 :show_password_reset,
24 token.token
25 )
26 }"
27 )
28 else
29 _ ->
30 IO.puts("No local user #{nickname}")
31 end
32 end
33 end