diff options
author | Roman Chvanikov <chvanikoff@pm.me> | 2019-06-29 00:52:50 +0300 |
---|---|---|
committer | Roman Chvanikov <chvanikoff@pm.me> | 2019-06-29 00:52:50 +0300 |
commit | 657277ffc0d3d25be4376ed629057a2d2cefb2e1 (patch) | |
tree | 3fdd4ca236669df9b2afc5bfcd0e5d6002e23666 /lib/pleroma/web/twitter_api/controllers/password_controller.ex | |
parent | c0fa0001476a8a45878a0c75125627164497eddf (diff) | |
parent | c6668c2e7b9908e479527914ca7eb2c838aaab06 (diff) | |
download | pleroma-657277ffc0d3d25be4376ed629057a2d2cefb2e1.tar.gz |
Resolve conflicts
Diffstat (limited to 'lib/pleroma/web/twitter_api/controllers/password_controller.ex')
-rw-r--r-- | lib/pleroma/web/twitter_api/controllers/password_controller.ex | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/pleroma/web/twitter_api/controllers/password_controller.ex b/lib/pleroma/web/twitter_api/controllers/password_controller.ex new file mode 100644 index 000000000..1941e6143 --- /dev/null +++ b/lib/pleroma/web/twitter_api/controllers/password_controller.ex @@ -0,0 +1,37 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.TwitterAPI.PasswordController do + @moduledoc """ + The module containts functions for reset password. + """ + + use Pleroma.Web, :controller + + require Logger + + alias Pleroma.PasswordResetToken + alias Pleroma.Repo + alias Pleroma.User + + def reset(conn, %{"token" => token}) do + with %{used: false} = token <- Repo.get_by(PasswordResetToken, %{token: token}), + %User{} = user <- User.get_cached_by_id(token.user_id) do + render(conn, "reset.html", %{ + token: token, + user: user + }) + else + _e -> render(conn, "invalid_token.html") + end + end + + def do_reset(conn, %{"data" => data}) do + with {:ok, _} <- PasswordResetToken.reset_password(data["token"], data) do + render(conn, "reset_success.html") + else + _e -> render(conn, "reset_failed.html") + end + end +end |