From 5ca86b1c575f9c42ad8d3d4a2b2d3e70c89e90df Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Fri, 19 Jan 2024 14:02:04 +0100 Subject: [chore] Harden up boolptr logic on Accounts, warn if not set (#2544) --- internal/typeutils/internaltofrontend.go | 33 ++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'internal/typeutils/internaltofrontend.go') diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go index 941b9e866..ed2979049 100644 --- a/internal/typeutils/internaltofrontend.go +++ b/internal/typeutils/internaltofrontend.go @@ -217,6 +217,31 @@ func (c *Converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A } } + // Bool ptrs should be set, but warn + // and use a default if they're not. + var boolPtrDef = func( + pName string, + p *bool, + d bool, + ) bool { + if p != nil { + return *p + } + + log.Warnf(ctx, + "%s ptr was nil, using default %t", + pName, d, + ) + return d + } + + var ( + locked = boolPtrDef("locked", a.Locked, true) + discoverable = boolPtrDef("discoverable", a.Discoverable, false) + bot = boolPtrDef("bot", a.Bot, false) + enableRSS = boolPtrDef("enableRSS", a.EnableRSS, false) + ) + // Remaining properties are simple and // can be populated directly below. @@ -225,9 +250,9 @@ func (c *Converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A Username: a.Username, Acct: acct, DisplayName: a.DisplayName, - Locked: *a.Locked, - Discoverable: *a.Discoverable, - Bot: *a.Bot, + Locked: locked, + Discoverable: discoverable, + Bot: bot, CreatedAt: util.FormatISO8601(a.CreatedAt), Note: a.Note, URL: a.URL, @@ -243,7 +268,7 @@ func (c *Converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A Fields: fields, Suspended: !a.SuspendedAt.IsZero(), CustomCSS: a.CustomCSS, - EnableRSS: *a.EnableRSS, + EnableRSS: enableRSS, Role: role, Moved: moved, } -- cgit v1.2.3