summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaelwenn <contact+git.pleroma.social@hacktivis.me>2022-10-30 00:38:21 +0000
committerHaelwenn <contact+git.pleroma.social@hacktivis.me>2022-10-30 00:38:21 +0000
commitda0ef154a6ea87abbe81a094c444546a3e62c723 (patch)
tree553ceab646fb405285fc7263779128fd05f2644d
parent9fbf01f7a928465406335034b23c10605aa2189a (diff)
parent50923f543826bb97efe8e01737ca854003ab934f (diff)
Merge branch 'from/upstream-develop/tusooa/2930-get-or-fetch' into 'develop'
Fix User.get_or_fetch/1 with usernames starting with http Closes #2930 See merge request pleroma/pleroma!3751
-rw-r--r--lib/pleroma/user.ex3
-rw-r--r--test/pleroma/user_test.exs7
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 85d3382cb..b422e5c1d 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -2126,7 +2126,8 @@ defmodule Pleroma.User do
@doc "Gets or fetch a user by uri or nickname."
@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)
# wait a period of time and return newest version of the User structs
diff --git a/test/pleroma/user_test.exs b/test/pleroma/user_test.exs
index 11789b64d..092ad82f5 100644
--- a/test/pleroma/user_test.exs
+++ b/test/pleroma/user_test.exs
@@ -850,6 +850,13 @@ defmodule Pleroma.UserTest do
freshed_user = refresh_record(user)
assert freshed_user == fetched_user
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
describe "fetching a user from nickname or trying to build one" do