zenstackhq / zenstack

Fullstack TypeScript toolkit that enhances Prisma ORM with flexible Authorization layer for RBAC/ABAC/PBAC/ReBAC, offering auto-generated type-safe APIs and frontend hooks.
https://zenstack.dev
MIT License
2.07k stars 88 forks source link

Policy generation error when referencing a boolean field directly in rules #509

Closed ymc9 closed 1 year ago

ymc9 commented 1 year ago
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "sqlite"
  url      = "file:./dev.db"
}

model User {
  id Int @id @default(autoincrement())
  email String @unique
  name String?
  posts Post[]
}

model Post {
  id Int @id @default(autoincrement())
  title String
  content String?
  published Boolean @default(false)
  author User? @relation(fields: [authorId], references: [id])
  authorId Int?

  deleted Boolean @default(false) @omit

  @@allow('all', true)
  @@deny('read', deleted)
}
node_modules/.zenstack/policy.ts:5:9 - error TS2304: Cannot find name 'deleted'.

5     if (deleted) { return false; }if (true) { return true; }return false;
ymc9 commented 1 year ago

Fixed by #511