Use router helper to generate reset password link
authorMaxim Filippov <colixer@gmail.com>
Sun, 22 Sep 2019 13:36:59 +0000 (16:36 +0300)
committerMaxim Filippov <colixer@gmail.com>
Sun, 22 Sep 2019 13:36:59 +0000 (16:36 +0300)
lib/pleroma/web/admin_api/admin_api_controller.ex
test/web/admin_api/admin_api_controller_test.exs

index 54ab6e032b8fa84be389fbf7c4061e345dd59c4f..b2df1e5b83680bb11d9a7180c3010bf41985bfbf 100644 (file)
@@ -17,7 +17,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
   alias Pleroma.Web.AdminAPI.ReportView
   alias Pleroma.Web.AdminAPI.Search
   alias Pleroma.Web.CommonAPI
+  alias Pleroma.Web.Endpoint
   alias Pleroma.Web.MastodonAPI.StatusView
+  alias Pleroma.Web.Router
 
   import Pleroma.Web.ControllerHelper, only: [json_response: 3]
 
@@ -432,13 +434,11 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
   def get_password_reset(conn, %{"nickname" => nickname}) do
     (%User{local: true} = user) = User.get_cached_by_nickname(nickname)
     {:ok, token} = Pleroma.PasswordResetToken.create_token(user)
-    host = Pleroma.Config.get([Pleroma.Web.Endpoint, :url, :host])
-    protocol = Pleroma.Config.get([Pleroma.Web.Endpoint, :protocol])
 
     conn
     |> json(%{
       token: token.token,
-      link: "#{protocol}://#{host}/api/pleroma/password_reset/#{token.token}"
+      link: Router.Helpers.reset_password_url(Endpoint, :reset, token.token)
     })
   end
 
index c497ea098089c59b0ae68cee8c448e6683b57a0c..77c67011d4e6d3c177233dc91ff53038605ef892 100644 (file)
@@ -596,7 +596,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
       |> put_req_header("accept", "application/json")
       |> get("/api/pleroma/admin/users/#{user.nickname}/password_reset")
 
-    assert conn.status == 200
+    resp = json_response(conn, 200)
+
+    assert Regex.match?(~r/(http:\/\/|https:\/\/)/, resp["link"])
   end
 
   describe "GET /api/pleroma/admin/users" do