diff options
author | Ivan Tashkinov <ivantashkinov@gmail.com> | 2018-12-13 13:17:49 +0300 |
---|---|---|
committer | Ivan Tashkinov <ivantashkinov@gmail.com> | 2018-12-13 13:17:49 +0300 |
commit | 908943352fe2d81c34323a5571ad5c1d391969e1 (patch) | |
tree | 8041381a9324dc5a9c96b275f0a598a219a364d4 /lib/pleroma/web/twitter_api/twitter_api.ex | |
parent | bfff2399ff2d7b479b066c6f92bf9331f80bb914 (diff) | |
download | pleroma-908943352fe2d81c34323a5571ad5c1d391969e1.tar.gz |
[#114] Refactored `password_reset` (moved to TwitterAPI). Added homepage links to password reset result pages.
Diffstat (limited to 'lib/pleroma/web/twitter_api/twitter_api.ex')
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api.ex | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 79ea48d86..1e764f24a 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -167,6 +167,25 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do end end + def password_reset(nickname_or_email) do + with true <- is_binary(nickname_or_email), + %User{local: true} = user <- User.get_by_nickname_or_email(nickname_or_email), + {:ok, token_record} <- Pleroma.PasswordResetToken.create_token(user) do + user + |> Pleroma.UserEmail.password_reset_email(token_record.token) + |> Pleroma.Mailer.deliver() + else + false -> + {:error, "bad user identifier"} + + %User{local: false} -> + {:error, "remote user"} + + nil -> + {:error, "unknown user"} + end + end + def get_by_id_or_nickname(id_or_nickname) do if !is_integer(id_or_nickname) && :error == Integer.parse(id_or_nickname) do Repo.get_by(User, nickname: id_or_nickname) |