feat(auth): add module read/write admin RBAC

Introduce permission catalog, PermissionsGuard, JWT/me payload with
role+permissions, and gate all module controllers. Admins CRUD accepts
role/permissions with safety rules; migrate existing users to super_admin.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-10 15:29:04 +03:30
co-authored by Cursor
parent 4b3a8a1d6c
commit af1e217a68
28 changed files with 532 additions and 75 deletions
+3 -1
View File
@@ -21,7 +21,7 @@ enum KhanegiUiVariant {
enum UserRole {
super_admin
viewer
admin
}
enum SmsLedgerType {
@@ -39,6 +39,8 @@ model User {
email String? @unique
passwordHash String @map("password_hash")
role UserRole @default(super_admin)
/// Permission codes for role=admin (ignored when role=super_admin)
permissions Json @default("[]")
isActive Boolean @default(true) @map("is_active")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")