Skip to content
This repository was archived by the owner on Mar 1, 2026. It is now read-only.

Commit 634b4f8

Browse files
committed
fix tests
1 parent 1cedd2e commit 634b4f8

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

packages/plugins/policy/src/policy-handler.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ export class PolicyHandler<Schema extends SchemaDef> extends OperationNodeTransf
275275
const updatedFroms: OperationNode[] = [];
276276
for (const table of result.from!.froms) {
277277
const extractedTable = this.extractTableName(table);
278-
if (extractedTable?.model) {
278+
if (extractedTable?.model && QueryUtils.getModel(this.client.$schema, extractedTable.model)) {
279279
const { query } = this.createSelectAllFieldsWithPolicies(
280280
extractedTable.model,
281281
extractedTable.alias,
@@ -315,6 +315,11 @@ export class PolicyHandler<Schema extends SchemaDef> extends OperationNodeTransf
315315
// reject non-existing model
316316
this.tryRejectNonexistentModel(table.model);
317317

318+
if (!QueryUtils.getModel(this.client.$schema, table.model)) {
319+
// not a defined model, could be m2m join table, keep as is
320+
return super.transformJoin(node);
321+
}
322+
318323
const result = super.transformJoin(node);
319324

320325
const { hasPolicies, query: nestedQuery } = this.createSelectAllFieldsWithPolicies(
@@ -555,7 +560,10 @@ export class PolicyHandler<Schema extends SchemaDef> extends OperationNodeTransf
555560
}
556561

557562
private hasFieldLevelPolicies(model: string): unknown {
558-
const modelDef = QueryUtils.requireModel(this.client.$schema, model);
563+
const modelDef = QueryUtils.getModel(this.client.$schema, model);
564+
if (!modelDef) {
565+
return false;
566+
}
559567
return Object.values(modelDef.fields).some((fieldDef) =>
560568
fieldDef.attributes?.some((attr) => ['@allow', '@deny'].includes(attr.name)),
561569
);

0 commit comments

Comments
 (0)