-
-
Notifications
You must be signed in to change notification settings - Fork 127
Closed
Description
Description and expected behavior
After trying to upgrade ZenStack to v2, I discovered a bug when trying to call /api/model/membership/findMany (see error message). Every other table was working fine, expect Membership.
After some digging I found out, that it was a field level access policy causing the issue:
@deny("read, update", space.memberships?[auth() == user && !(role in [owner, admin, roleManager])])
After removing the read part, it was working just fine.
This policy was working just fine in v1 of ZenStack, but I tried every v2 release and in every version the error occured.
Error
Error calling enhanced Prisma method `membership.findMany`: Maximum call stack size exceeded
at RequestHandler.<anonymous> (/<project-path>/node_modules/@zenstackhq/server/api/rpc/index.js:136:57),
at Generator.next (<anonymous>),
at fulfilled (/<project-path>/node_modules/@zenstackhq/server/api/rpc/index.js:5:58)
Environment:
- ZenStack version: 2.0.0 - 2.1.0
- Prisma version: 5.13.0
- Database type: Postgresql
Additional context
import "./enum"
import "./user"
import "./space"
model Membership {
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
spaceId String
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
role MemberRole @deny("update", auth() == user)
employeeReference String? @deny("read, update", space.memberships?[auth() == user && !(role in [owner, admin])])
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@id([userId, spaceId])
}Metadata
Metadata
Assignees
Labels
No labels