User: Correctly handle whitespace names.
This commit is contained in:
parent
096e4518ad
commit
60e379ce0b
|
@ -426,7 +426,6 @@ def remote_user_changeset(struct \\ %User{local: false}, params) do
|
|||
params,
|
||||
[
|
||||
:bio,
|
||||
:name,
|
||||
:emoji,
|
||||
:ap_id,
|
||||
:inbox,
|
||||
|
@ -455,7 +454,9 @@ def remote_user_changeset(struct \\ %User{local: false}, params) do
|
|||
:accepts_chat_messages
|
||||
]
|
||||
)
|
||||
|> validate_required([:name, :ap_id])
|
||||
|> cast(params, [:name], empty_values: [])
|
||||
|> validate_required([:ap_id])
|
||||
|> validate_required([:name], trim: false)
|
||||
|> unique_constraint(:nickname)
|
||||
|> validate_format(:nickname, @email_regex)
|
||||
|> validate_length(:bio, max: bio_limit)
|
||||
|
|
|
@ -1378,10 +1378,6 @@ def fetch_and_prepare_user_from_ap_id(ap_id, opts \\ []) do
|
|||
{:ok, data} <- user_data_from_user_object(data) do
|
||||
{:ok, maybe_update_follow_information(data)}
|
||||
else
|
||||
{:error, "Object has been deleted" = e} ->
|
||||
Logger.debug("Could not decode user at fetch #{ap_id}, #{inspect(e)}")
|
||||
{:error, e}
|
||||
|
||||
{:error, {:reject, reason} = e} ->
|
||||
Logger.info("Rejected user #{ap_id}: #{inspect(reason)}")
|
||||
{:error, e}
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
"@context" : [
|
||||
"https://www.w3.org/ns/activitystreams",
|
||||
"https://princess.cat/schemas/litepub-0.1.jsonld",
|
||||
{
|
||||
"@language" : "und"
|
||||
}
|
||||
],
|
||||
"attachment" : [],
|
||||
"capabilities" : {
|
||||
"acceptsChatMessages" : true
|
||||
},
|
||||
"discoverable" : false,
|
||||
"endpoints" : {
|
||||
"oauthAuthorizationEndpoint" : "https://princess.cat/oauth/authorize",
|
||||
"oauthRegistrationEndpoint" : "https://princess.cat/api/v1/apps",
|
||||
"oauthTokenEndpoint" : "https://princess.cat/oauth/token",
|
||||
"sharedInbox" : "https://princess.cat/inbox",
|
||||
"uploadMedia" : "https://princess.cat/api/ap/upload_media"
|
||||
},
|
||||
"followers" : "https://princess.cat/users/mewmew/followers",
|
||||
"following" : "https://princess.cat/users/mewmew/following",
|
||||
"icon" : {
|
||||
"type" : "Image",
|
||||
"url" : "https://princess.cat/media/12794fb50e86911e65be97f69196814049dcb398a2f8b58b99bb6591576e648c.png?name=blobcatpresentpink.png"
|
||||
},
|
||||
"id" : "https://princess.cat/users/mewmew",
|
||||
"image" : {
|
||||
"type" : "Image",
|
||||
"url" : "https://princess.cat/media/05d8bf3953ab6028fc920494ffc643fbee9dcef40d7bdd06f107e19acbfbd7f9.png"
|
||||
},
|
||||
"inbox" : "https://princess.cat/users/mewmew/inbox",
|
||||
"manuallyApprovesFollowers" : true,
|
||||
"name" : " ",
|
||||
"outbox" : "https://princess.cat/users/mewmew/outbox",
|
||||
"preferredUsername" : "mewmew",
|
||||
"publicKey" : {
|
||||
"id" : "https://princess.cat/users/mewmew#main-key",
|
||||
"owner" : "https://princess.cat/users/mewmew",
|
||||
"publicKeyPem" : "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAru7VpygVef4zrFwnj0Mh\nrbO/2z2EdKN3rERtNrT8zWsLXNLQ50lfpRPnGDrd+xq7Rva4EIu0d5KJJ9n4vtY0\nuxK3On9vA2oyjLlR9O0lI3XTrHJborG3P7IPXrmNUMFpHiFHNqHp5tugUrs1gUFq\n7tmOmM92IP4Wjk8qNHFcsfnUbaPTX7sNIhteQKdi5HrTb/6lrEIe4G/FlMKRqxo3\nRNHuv6SNFQuiUKvFzjzazvjkjvBSm+aFROgdHa2tKl88StpLr7xmuY8qNFCRT6W0\nLacRp6c8ah5f03Kd+xCBVhCKvKaF1K0ERnQTBiitUh85md+Mtx/CoDoLnmpnngR3\nvQIDAQAB\n-----END PUBLIC KEY-----\n\n"
|
||||
},
|
||||
"summary" : "please reply to my posts as direct messages if you have many followers",
|
||||
"tag" : [],
|
||||
"type" : "Person",
|
||||
"url" : "https://princess.cat/users/mewmew"
|
||||
}
|
|
@ -2273,4 +2273,15 @@ test "`following` still contains self-replies by friends" do
|
|||
assert length(activities) == 2
|
||||
end
|
||||
end
|
||||
|
||||
test "allow fetching of accounts with an empty string name field" do
|
||||
Tesla.Mock.mock(fn
|
||||
%{method: :get, url: "https://princess.cat/users/mewmew"} ->
|
||||
file = File.read!("test/fixtures/mewmew_no_name.json")
|
||||
%Tesla.Env{status: 200, body: file}
|
||||
end)
|
||||
|
||||
{:ok, user} = ActivityPub.make_user_from_ap_id("https://princess.cat/users/mewmew")
|
||||
assert user.name == " "
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue