瀏覽代碼

Use router helper to generate reset password link

object-id-column
Maxim Filippov 4 年之前
父節點
當前提交
72a01f1350
共有 2 個文件被更改,包括 6 次插入4 次删除
  1. +3
    -3
      lib/pleroma/web/admin_api/admin_api_controller.ex
  2. +3
    -1
      test/web/admin_api/admin_api_controller_test.exs

+ 3
- 3
lib/pleroma/web/admin_api/admin_api_controller.ex 查看文件

@@ -17,7 +17,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
alias Pleroma.Web.AdminAPI.ReportView alias Pleroma.Web.AdminAPI.ReportView
alias Pleroma.Web.AdminAPI.Search alias Pleroma.Web.AdminAPI.Search
alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI
alias Pleroma.Web.Endpoint
alias Pleroma.Web.MastodonAPI.StatusView alias Pleroma.Web.MastodonAPI.StatusView
alias Pleroma.Web.Router


import Pleroma.Web.ControllerHelper, only: [json_response: 3] 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 def get_password_reset(conn, %{"nickname" => nickname}) do
(%User{local: true} = user) = User.get_cached_by_nickname(nickname) (%User{local: true} = user) = User.get_cached_by_nickname(nickname)
{:ok, token} = Pleroma.PasswordResetToken.create_token(user) {: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 conn
|> json(%{ |> json(%{
token: token.token, token: token.token,
link: "#{protocol}://#{host}/api/pleroma/password_reset/#{token.token}"
link: Router.Helpers.reset_password_url(Endpoint, :reset, token.token)
}) })
end end




+ 3
- 1
test/web/admin_api/admin_api_controller_test.exs 查看文件

@@ -596,7 +596,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
|> put_req_header("accept", "application/json") |> put_req_header("accept", "application/json")
|> get("/api/pleroma/admin/users/#{user.nickname}/password_reset") |> 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 end


describe "GET /api/pleroma/admin/users" do describe "GET /api/pleroma/admin/users" do


Loading…
取消
儲存