diff options
author | lain <lain@soykaf.club> | 2021-12-03 15:13:10 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2021-12-03 15:13:10 +0000 |
commit | 5c573a8a282725a9f2595fa264d794870a832a8a (patch) | |
tree | 3a794c09523013361f5d0e14b812b7b59b4d6133 /lib | |
parent | 235c4139d701f7d25dac2a152d8ab6e4afb1c20d (diff) | |
parent | ba2ed3c2554cae060ef73cc908b978e5bd4015f0 (diff) | |
download | pleroma-5c573a8a282725a9f2595fa264d794870a832a8a.tar.gz pleroma-5c573a8a282725a9f2595fa264d794870a832a8a.zip |
Merge branch 'password-reset' into 'develop'
Restore POST /auth/password, fixes #2789
Closes #2789
See merge request pleroma/pleroma!3550
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/router.ex | 6 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/controllers/password_controller.ex | 14 |
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index abb332ec2..dae113617 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -736,6 +736,12 @@ defmodule Pleroma.Web.Router do get("/:version", Nodeinfo.NodeinfoController, :nodeinfo) end + scope "/", Pleroma.Web do + pipe_through(:pleroma_html) + + post("/auth/password", TwitterAPI.PasswordController, :request) + end + scope "/proxy/", Pleroma.Web do get("/preview/:sig/:url", MediaProxy.MediaProxyController, :preview) get("/preview/:sig/:url/:filename", MediaProxy.MediaProxyController, :preview) diff --git a/lib/pleroma/web/twitter_api/controllers/password_controller.ex b/lib/pleroma/web/twitter_api/controllers/password_controller.ex index bc04a4d49..133a588b0 100644 --- a/lib/pleroma/web/twitter_api/controllers/password_controller.ex +++ b/lib/pleroma/web/twitter_api/controllers/password_controller.ex @@ -11,9 +11,23 @@ defmodule Pleroma.Web.TwitterAPI.PasswordController do require Logger + import Pleroma.Web.ControllerHelper, only: [json_response: 3] + alias Pleroma.PasswordResetToken alias Pleroma.Repo alias Pleroma.User + alias Pleroma.Web.TwitterAPI.TwitterAPI + + plug(Pleroma.Web.Plugs.RateLimiter, [name: :request] when action == :request) + + @doc "POST /auth/password" + def request(conn, params) do + nickname_or_email = params["email"] || params["nickname"] + + TwitterAPI.password_reset(nickname_or_email) + + json_response(conn, :no_content, "") + end def reset(conn, %{"token" => token}) do with %{used: false} = token <- Repo.get_by(PasswordResetToken, %{token: token}), |