Skip to content

Commit e2744da

Browse files
authored
fix(policy): extra fields included for policy evaluation should be dropped upon return (#2286)
1 parent c2d318c commit e2744da

File tree

4 files changed

+701
-2
lines changed

4 files changed

+701
-2
lines changed

packages/runtime/src/enhancements/node/policy/policy-utils.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1528,12 +1528,24 @@ export class PolicyUtil extends QueryUtils {
15281528
continue;
15291529
}
15301530

1531-
if (queryArgs?.omit?.[field] === true) {
1531+
if (queryArgs?.omit && typeof queryArgs.omit === 'object' && queryArgs.omit[field] === true) {
15321532
// respect `{ omit: { [field]: true } }`
15331533
delete entityData[field];
15341534
continue;
15351535
}
15361536

1537+
if (queryArgs?.select && typeof queryArgs.select === 'object' && !queryArgs.select[field]) {
1538+
// respect select
1539+
delete entityData[field];
1540+
continue;
1541+
}
1542+
1543+
if (fieldInfo.isDataModel && queryArgs?.include && typeof queryArgs.include === 'object' && !queryArgs.include[field]) {
1544+
// respect include
1545+
delete entityData[field];
1546+
continue;
1547+
}
1548+
15371549
if (hasFieldLevelPolicy) {
15381550
// 1. remove fields selected for checking field-level policies but not selected by the original query args
15391551
// 2. evaluate field-level policies and remove fields that are not readable

packages/testtools/src/schema.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ export type SchemaLoadOptions = {
150150
prismaLoadPath?: string;
151151
prismaClientOptions?: object;
152152
generateNoCompile?: boolean;
153+
dbFile?: string;
153154
};
154155

155156
const defaultOptions: SchemaLoadOptions = {
@@ -337,7 +338,10 @@ export function createProjectAndCompile(schema: string, options: SchemaLoadOptio
337338
});
338339
}
339340

340-
if (opt.pushDb) {
341+
if (opt.dbFile) {
342+
fs.cpSync(opt.dbFile, path.join(projectDir, 'prisma/dev.db'));
343+
}
344+
else if (opt.pushDb) {
341345
run('npx prisma db push --skip-generate --accept-data-loss');
342346
}
343347

204 KB
Binary file not shown.

0 commit comments

Comments
 (0)