ensure utf-8 nicknames on nickname GETs and user validator #1057

Merged
floatingghost merged 4 commits from user-utf8 into develop 2026-02-07 19:41:27 +00:00
Showing only changes of commit 3deb267333 - Show all commits

if we don't have a preferredUsername, accept standard fallback

FloatingGhost 2026-01-25 01:30:25 +00:00

View file

@ -25,6 +25,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.UserValidator do
when type in Pleroma.Constants.actor_types() do
with :ok <- validate_pubkey(data),
:ok <- validate_inbox(data),
:ok <- validate_nickname(data),
:ok <- contain_collection_origin(data) do
{:ok, data, meta}
else
@ -83,4 +84,14 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.UserValidator do
_, error -> error
end)
end
defp validate_nickname(%("preferredUsername" => nick)) when is_binary(nick) do
Oneric marked this conversation as resolved

what will happen if "preferredusername" exists but isn’t a binary?

what will happen if `"preferredusername"` exists but isn’t a binary?

updated to error if we have the preferredUsername key but its type is silly

updated to error if we have the preferredUsername key but its type is silly
if String.valid?(nick) do
:ok
else
{:error, "Nickname is not valid UTF-8"}
end
end
defp validate_nickname(_), do: :ok
end