MS-BE-API-4: systemRole aus eventGuests entfernt, Auth auf compositeRole umgestellt #123

Closed
opened 2026-06-25 19:21:10 +02:00 by niboer · 0 comments
Owner

Beschreibung

eventGuests.systemRole (guest/organizer/event-admin) wird entfernt.
Die Berechtigungssteuerung erfolgt ausschliesslich ueber compositeRole
(Referenz auf eventRoles.permissions-JSONB-Array) und event.createdBy.

Aenderungen

Datenbank (Prisma + Migration)

  • systemRole-Feld aus EventGuest-Modell entfernen
  • Migration �001_full_schema regenerieren (CHECK-Constraint + Spalte entfernt)
  • EventGuest-Scalar-Feld-Enum wird automatisch aktualisiert

Auth-Hooks (src/lib/auth.ts)

equireOrganizer(eventIdParam):

  1. event.createdBy === request.user.personId ? OK
  2. EventGuest.compositeRole.permissions enthaelt 'organizer' ? OK
    sonst 403

equireOrganizerOrEventAdmin(eventIdParam):
Wie requireOrganizer, zusaetzlich Permission 'event-admin' ? OK

equireSelfOrGroupMember(eventIdParam, personIdParam):
systemRole-Check ersetzt durch compositeRole-Permission-Check

equireAddressAccess(personIdParam):
event-admin-Check nutzt compositeRole.permissions 'event-admin'

openapi.yaml

  • systemRole aus Guest-Schema entfernt (auch aus
    equired)
  • systemRole aus Invitation-Schema entfernt
  • Neues Schema GuestRoleResponse (nur compositeRole, nullable)

Seed (prisma/seed.ts)

  • systemRole aus eventGuest.create-Aufrufen entfernt
  • EventRole "Organizer" mit permissions ['organizer'] + "Event-Admin" mit ['event-admin'] anlegen
  • Max Mustermann (event.createdBy) bekommt compositeRole "Organizer"

Tests

  • guests.test.ts: systemRole-Referenzen entfernt
  • uth.test.ts: Hook-Tests auf neue Permission-Logik umgestellt
  • events.test.ts, orms.test.ts, contacts.test.ts: systemRole-Referenzen entfernt
  • prisma-models.test.ts: EventGuest-Scalar-Enum ohne systemRole
  • schema-consistency.test.ts: systemRole-Tests entfernt oder angepasst

Abhaengigkeiten

  • Migration muss vor Route-Code laufen
  • Nach diesem Issue ist
    equireOrganizer-Hook ohne systemRole funktionsfaehig
## Beschreibung eventGuests.systemRole (guest/organizer/event-admin) wird entfernt. Die Berechtigungssteuerung erfolgt ausschliesslich ueber compositeRole (Referenz auf eventRoles.permissions-JSONB-Array) und event.createdBy. ## Aenderungen ### Datenbank (Prisma + Migration) - systemRole-Feld aus EventGuest-Modell entfernen - Migration �001_full_schema regenerieren (CHECK-Constraint + Spalte entfernt) - EventGuest-Scalar-Feld-Enum wird automatisch aktualisiert ### Auth-Hooks (src/lib/auth.ts) - equireOrganizer(eventIdParam): 1. event.createdBy === request.user.personId ? OK 2. EventGuest.compositeRole.permissions enthaelt 'organizer' ? OK sonst 403 - equireOrganizerOrEventAdmin(eventIdParam): Wie requireOrganizer, zusaetzlich Permission 'event-admin' ? OK - equireSelfOrGroupMember(eventIdParam, personIdParam): systemRole-Check ersetzt durch compositeRole-Permission-Check - equireAddressAccess(personIdParam): event-admin-Check nutzt compositeRole.permissions 'event-admin' ### openapi.yaml - systemRole aus Guest-Schema entfernt (auch aus equired) - systemRole aus Invitation-Schema entfernt - Neues Schema GuestRoleResponse (nur compositeRole, nullable) ### Seed (prisma/seed.ts) - systemRole aus eventGuest.create-Aufrufen entfernt - EventRole "Organizer" mit permissions ['organizer'] + "Event-Admin" mit ['event-admin'] anlegen - Max Mustermann (event.createdBy) bekommt compositeRole "Organizer" ### Tests - guests.test.ts: systemRole-Referenzen entfernt - uth.test.ts: Hook-Tests auf neue Permission-Logik umgestellt - events.test.ts, orms.test.ts, contacts.test.ts: systemRole-Referenzen entfernt - prisma-models.test.ts: EventGuest-Scalar-Enum ohne systemRole - schema-consistency.test.ts: systemRole-Tests entfernt oder angepasst ## Abhaengigkeiten - Migration muss vor Route-Code laufen - Nach diesem Issue ist equireOrganizer-Hook ohne systemRole funktionsfaehig
Sign in to join this conversation.
No description provided.