Array form of ProjectEntityValuesForUser. The denied set, the readable-fields list and
the Record Changes projector are each built ONCE for the whole set: the projector memoizes its
per-entity lookups for its own lifetime, and a denied set walks every field of the entity, so
building either per row turns a per-request cost into a per-row one.
Returns the ORIGINAL array when no row needed changing. Fails open on a missing user, as
ProjectEntityValuesForUser does.
Array form of ProjectEntityValuesForUser. The denied set, the readable-fields list and the Record Changes projector are each built ONCE for the whole set: the projector memoizes its per-entity lookups for its own lifetime, and a denied set walks every field of the entity, so building either per row turns a per-request cost into a per-row one.
Returns the ORIGINAL array when no row needed changing. Fails open on a missing user, as ProjectEntityValuesForUser does.