ProfileMapper.ToDto omits 5 permission fields — child's own blogPosting etc. always read as defaults #759

Closed
opened 2026-07-21 02:59:47 +00:00 by spikerj · 1 comment
Owner

Latent backend bug spotted during the #735 minor-map investigation and never filed (it sat only in session notes).

ProfileMapper.ToDto (spikersoft-backend) does not map five of the FeaturePermissions fields — blogPosting among them — so a child's own profile DTO always carries the default values for those permissions regardless of what's stored. The #735 fix addressed the parent-map masking; this is the remaining mapper gap on the child's own view.

Repro sketch: grant a child blogPosting via the parent flow, fetch the child's own profile → DTO shows the default, not the granted value.

Fix: add the missing fields to ToDto and a mapper round-trip test asserting every FeaturePermissions member survives (that test would have caught this class of omission).

Latent backend bug spotted during the #735 minor-map investigation and never filed (it sat only in session notes). `ProfileMapper.ToDto` (spikersoft-backend) does not map five of the `FeaturePermissions` fields — `blogPosting` among them — so a child's *own* profile DTO always carries the default values for those permissions regardless of what's stored. The #735 fix addressed the parent-map masking; this is the remaining mapper gap on the child's own view. Repro sketch: grant a child blogPosting via the parent flow, fetch the child's own profile → DTO shows the default, not the granted value. Fix: add the missing fields to `ToDto` and a mapper round-trip test asserting every `FeaturePermissions` member survives (that test would have caught this class of omission).
Author
Owner

Duplicate — filed from a stale note. This was already tracked as #736 and fixed in backend PR #435 (all 13 FeaturePermissions fields mapped + a 13-field pin test), merged 2026-07-20. Closing.

Duplicate — filed from a stale note. This was already tracked as #736 and fixed in backend PR #435 (all 13 FeaturePermissions fields mapped + a 13-field pin test), merged 2026-07-20. Closing.
Sign in to join this conversation.