Fix User.get_or_fetch/1 with usernames starting with http

This commit is contained in:
Tusooa Zhu 2022-09-08 11:58:17 -04:00
parent 453a66f8c2
commit 50923f5438
No known key found for this signature in database
GPG Key ID: 7B467EDE43A08224
2 changed files with 9 additions and 1 deletions

View File

@ -2126,7 +2126,8 @@ defmodule Pleroma.User do
@doc "Gets or fetch a user by uri or nickname." @doc "Gets or fetch a user by uri or nickname."
@spec get_or_fetch(String.t()) :: {:ok, User.t()} | {:error, String.t()} @spec get_or_fetch(String.t()) :: {:ok, User.t()} | {:error, String.t()}
def get_or_fetch("http" <> _host = uri), do: get_or_fetch_by_ap_id(uri) def get_or_fetch("http://" <> _host = uri), do: get_or_fetch_by_ap_id(uri)
def get_or_fetch("https://" <> _host = uri), do: get_or_fetch_by_ap_id(uri)
def get_or_fetch(nickname), do: get_or_fetch_by_nickname(nickname) def get_or_fetch(nickname), do: get_or_fetch_by_nickname(nickname)
# wait a period of time and return newest version of the User structs # wait a period of time and return newest version of the User structs

View File

@ -850,6 +850,13 @@ defmodule Pleroma.UserTest do
freshed_user = refresh_record(user) freshed_user = refresh_record(user)
assert freshed_user == fetched_user assert freshed_user == fetched_user
end end
test "gets an existing user by nickname starting with http" do
user = insert(:user, nickname: "httpssome")
{:ok, fetched_user} = User.get_or_fetch("httpssome")
assert user == fetched_user
end
end end
describe "fetching a user from nickname or trying to build one" do describe "fetching a user from nickname or trying to build one" do