From aa396c78d30c129bb2145765d3990571dbc025bb Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:45:46 +0100 Subject: [feature] serdes for moved/also_known_as (#2600) * [feature] serdes for moved/also_known_as * document `alsoKnownAs` and `movedTo` properties * only implicitly populate AKA uris from DB for local accounts * don't let remotes store more than 20 AKA uris to avoid shenanigans --- internal/typeutils/astointernal.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'internal/typeutils/astointernal.go') diff --git a/internal/typeutils/astointernal.go b/internal/typeutils/astointernal.go index fa2ae6a62..b262030de 100644 --- a/internal/typeutils/astointernal.go +++ b/internal/typeutils/astointernal.go @@ -198,7 +198,25 @@ func (c *Converter) ASRepresentationToAccount(ctx context.Context, accountable a // TODO: FeaturedTagsURI - // TODO: alsoKnownAs + // Moved and AlsoKnownAsURIs, + // needed for account migrations. + movedToURI := ap.GetMovedTo(accountable) + if movedToURI != nil { + acct.MovedToURI = movedToURI.String() + } + + alsoKnownAsURIs := ap.GetAlsoKnownAs(accountable) + for i, uri := range alsoKnownAsURIs { + // Don't store more than + // 20 AKA URIs for remotes, + // to prevent people playing + // silly buggers. + if i >= 20 { + break + } + + acct.AlsoKnownAsURIs = append(acct.AlsoKnownAsURIs, uri.String()) + } // Extract account public key and verify ownership to account. pkey, pkeyURL, pkeyOwnerID, err := ap.ExtractPublicKey(accountable) -- cgit v1.2.3