From 3e9ef849cd8e69e1e8d7f2f653f0647e93c8ab39 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch <30633324+JarrodMFlesch@users.noreply.github.com> Date: Fri, 15 Dec 2023 11:22:22 -0500 Subject: [PATCH] fix: omit field default value if read access returns false (#4518) --- packages/payload/src/fields/hooks/afterRead/promise.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/payload/src/fields/hooks/afterRead/promise.ts b/packages/payload/src/fields/hooks/afterRead/promise.ts index c6e43ae95d4..7289ce5b684 100644 --- a/packages/payload/src/fields/hooks/afterRead/promise.ts +++ b/packages/payload/src/fields/hooks/afterRead/promise.ts @@ -250,6 +250,7 @@ export const promise = async ({ } // Execute access control + let allowDefaultValue = true if (triggerAccessControl && field.access && field.access.read) { const result = overrideAccess ? true @@ -262,6 +263,7 @@ export const promise = async ({ }) if (!result) { + allowDefaultValue = false delete siblingDoc[field.name] } } @@ -269,6 +271,7 @@ export const promise = async ({ // Set defaultValue on the field for globals being returned without being first created // or collection documents created prior to having a default if ( + allowDefaultValue && typeof siblingDoc[field.name] === 'undefined' && typeof field.defaultValue !== 'undefined' ) {