@@ -207,18 +207,9 @@ const filterSensitiveData = (
207
207
// replace protectedFields when using pointer-permissions
208
208
const perms = schema . getClassLevelPermissions ( className ) ;
209
209
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 ;
215
211
216
- if (
217
- field === 'readUserFields' &&
218
- fieldKeys &&
219
- fieldKeys . length > 0 &&
220
- perms . protectedFields
221
- ) {
212
+ if ( isReadOperation && perms . protectedFields ) {
222
213
// extract protectedFields added with the pointer-permission prefix
223
214
const protectedFieldsPointerPerm = Object . keys ( perms . protectedFields )
224
215
. filter ( key => key . startsWith ( 'userField:' ) )
@@ -231,7 +222,6 @@ const filterSensitiveData = (
231
222
232
223
// check if the object grants the current user access based on the extracted fields
233
224
protectedFieldsPointerPerm.forEach(pointerPerm => {
234
- if ( ! fieldKeys . includes ( pointerPerm . key ) ) return ;
235
225
let pointerPermIncludesUser = false ;
236
226
const readUserFieldValue = object [ pointerPerm . key ] ;
237
227
if ( readUserFieldValue ) {
@@ -1587,10 +1577,12 @@ class DatabaseController {
1587
1577
1588
1578
if ( aclGroup . indexOf ( query . objectId ) > - 1 ) return null ;
1589
1579
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
+
1594
1586
[ ...( auth . userRoles || [ ] ) ] . forEach ( role => {
1595
1587
const fields = protectedFields [ role ] ;
1596
1588
if ( fields ) {
0 commit comments