@@ -207,18 +207,9 @@ const filterSensitiveData = (
207207 // replace protectedFields when using pointer-permissions
208208 const perms = schema . getClassLevelPermissions ( className ) ;
209209 if ( perms ) {
210- const field =
211- [ 'get' , 'find' ] . indexOf ( operation ) > - 1
212- ? 'readUserFields'
213- : 'writeUserFields' ;
214- const fieldKeys : string [ ] = perms [ field ] ;
210+ const isReadOperation = [ 'get' , 'find' ] . indexOf ( operation ) > - 1 ;
215211
216- if (
217- field === 'readUserFields' &&
218- fieldKeys &&
219- fieldKeys . length > 0 &&
220- perms . protectedFields
221- ) {
212+ if ( isReadOperation && perms . protectedFields ) {
222213 // extract protectedFields added with the pointer-permission prefix
223214 const protectedFieldsPointerPerm = Object . keys ( perms . protectedFields )
224215 . filter ( key => key . startsWith ( 'userField:' ) )
@@ -231,7 +222,6 @@ const filterSensitiveData = (
231222
232223 // check if the object grants the current user access based on the extracted fields
233224 protectedFieldsPointerPerm.forEach(pointerPerm => {
234- if ( ! fieldKeys . includes ( pointerPerm . key ) ) return ;
235225 let pointerPermIncludesUser = false ;
236226 const readUserFieldValue = object [ pointerPerm . key ] ;
237227 if ( readUserFieldValue ) {
@@ -1587,10 +1577,12 @@ class DatabaseController {
15871577
15881578 if ( aclGroup . indexOf ( query . objectId ) > - 1 ) return null ;
15891579
1590- let protectedKeys = Object . values ( protectedFields ) . reduce (
1591- ( acc , val ) => acc . concat ( val ) ,
1592- [ ]
1593- ) ; //.flat();
1580+ // remove userField keys since they are filtered after querying
1581+ let protectedKeys = Object . keys ( protectedFields ) . reduce ( ( acc , val ) => {
1582+ if ( val . startsWith ( 'userField:' ) ) return acc ;
1583+ return acc . concat ( protectedFields [ val ] ) ;
1584+ } , [ ] ) ;
1585+
15941586 [ ...( auth . userRoles || [ ] ) ] . forEach ( role => {
15951587 const fields = protectedFields [ role ] ;
15961588 if ( fields ) {
0 commit comments