feat(module-grants): Freigabestufe Verwalten – Datenbank, Zugriffsprüfung und Kantinen-Einstellungen
- Migration: ModuleGrant.level (USE/MANAGE), Bestand bleibt USE - ModuleAccessService.getModuleAccessLevels als einzige Auflösung, MANAGE gewinnt - @ModuleManage(slug) am ModuleGuard, GET /modules/active liefert canManage - Kantinenabrechnung: Einstellungen für Benutzer mit Verwalten, Web-Hook useCanManageModule Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -140,12 +140,20 @@ model TenantModuleActivation {
|
||||
// darf höchstens eine Gruppe die Standard-Markierung tragen, DB-erzwungen
|
||||
// über einen partiellen Unique-Index in der Hand-SQL-Ergänzung dieser
|
||||
// Migration (Prisma 6.19 kennt keine partiellen Indizes ohne Preview-Flag).
|
||||
// D-04: ModuleGrant trägt bewusst KEIN Rechtestufen-Feld — nur Zugriff an/aus.
|
||||
// D-04 (überholt durch 261002-icv): ModuleGrant trägt seit 261002-icv die Freigabestufe `level`.
|
||||
enum MembershipSource {
|
||||
MANUAL
|
||||
LDAP
|
||||
}
|
||||
|
||||
// 261002-icv: Freigabestufe einer Modul-Freigabe. USE = Benutzen (Standard und
|
||||
// Bestand), MANAGE = Verwalten (Modul benutzen UND dessen eigene Einstellungen
|
||||
// ändern). Freigaben erteilen bleibt Administratoren vorbehalten.
|
||||
enum ModuleGrantLevel {
|
||||
USE
|
||||
MANAGE
|
||||
}
|
||||
|
||||
model Group {
|
||||
id String @id @default(uuid())
|
||||
tenantId String
|
||||
@@ -191,6 +199,10 @@ model ModuleGrant {
|
||||
userId String?
|
||||
user User? @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
createdAt DateTime @default(now())
|
||||
// 261002-icv: Freigabestufe; USE = Benutzen (Standard und Bestand),
|
||||
// MANAGE = Verwalten — Modul benutzen und dessen eigene Einstellungen
|
||||
// ändern; Freigaben erteilen bleibt Administratoren vorbehalten.
|
||||
level ModuleGrantLevel @default(USE)
|
||||
|
||||
// Entweder-oder (Gruppe XOR Benutzer, D-04) + Duplikat-Schutz je Variante
|
||||
// werden per hand-editierter migration.sql ergänzt — Prisma 6.19 hat kein
|
||||
|
||||
Reference in New Issue
Block a user