Skip to content
Snippets Groups Projects
Commit 7bd49a32 authored by Ivan Tashkinov's avatar Ivan Tashkinov
Browse files

[#483] User.get_by_nickname/1: ensured case-insensitive matching for local FQN. Added tests.

parent b3574dcc
Branches
No related tags found
No related merge requests found
......@@ -388,7 +388,7 @@ defmodule Pleroma.User do
def get_by_nickname(nickname) do
Repo.get_by(User, nickname: nickname) ||
if String.ends_with?(nickname, "@" <> Pleroma.Web.Endpoint.host()) do
if Regex.match?(~r(@#{Pleroma.Web.Endpoint.host()})i, nickname) do
[local_nickname, _] = String.split(nickname, "@")
Repo.get_by(User, nickname: local_nickname)
end
......
......@@ -278,6 +278,25 @@ defmodule Pleroma.UserTest do
assert user == fetched_user
end
test "gets an existing user by fully qualified nickname" do
user = insert(:user)
fetched_user =
User.get_or_fetch_by_nickname(user.nickname <> "@" <> Pleroma.Web.Endpoint.host())
assert user == fetched_user
end
test "gets an existing user by fully qualified nickname, case insensitive" do
user = insert(:user, nickname: "nick")
casing_altered_fqn = String.upcase(user.nickname <> "@" <> Pleroma.Web.Endpoint.host())
fetched_user = User.get_or_fetch_by_nickname(casing_altered_fqn)
assert user == fetched_user
end
test "fetches an external user via ostatus if no user exists" do
fetched_user = User.get_or_fetch_by_nickname("shp@social.heldscal.la")
assert fetched_user.nickname == "shp@social.heldscal.la"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment