Backend: keycloakId aus API entfernen, hasKeycloakUser + invite-Endpunkt #190

Closed
opened 2026-07-02 21:54:09 +00:00 by niboer · 0 comments
Owner

API-Endpunkte bereinigen: keycloakId nie als UUID ausgeben, sondern nur als boolean hasKeycloakUser.

Aenderungen:

  1. Person-Schema in openapi.yaml: keycloakId → hasKeycloakUser (boolean, required)
  2. toPersonResponse()-Helper in persons.ts: keycloakId aus Response entfernen, hasKeycloakUser einfuegen
  3. Anwendung auf alle 7 Endpunkte: GET /persons, POST /persons, GET /persons/:id, PUT /persons/:id, GET /persons/me/summary, PUT /persons/:id/user-link, POST /persons/:id/archive
  4. Neuer Endpunkt POST /api/v1/persons/:person_id/invite:
    • Prueft Person + contactData (decrypted email)
    • 409 falls keycloakId bereits gesetzt
    • 400 falls kein Email vorhanden
    • Sucht zuerst Keycloak-User per Email (reuse, falls verwaist)
    • Legt neuen KC-User an oder verknuepft existierenden
    • Setzt keycloakId auf Person
    • Sendet execute-actions-email (UPDATE_PASSWORD)
  5. Tests aktualisiert + neue invite-Tests
  6. Autorisierungsmatrix aktualisiert

refs #(wird spaeter ergaenzt)

**API-Endpunkte bereinigen:** keycloakId nie als UUID ausgeben, sondern nur als boolean hasKeycloakUser. **Aenderungen:** 1. `Person`-Schema in openapi.yaml: keycloakId → hasKeycloakUser (boolean, required) 2. `toPersonResponse()`-Helper in persons.ts: keycloakId aus Response entfernen, hasKeycloakUser einfuegen 3. Anwendung auf alle 7 Endpunkte: GET /persons, POST /persons, GET /persons/:id, PUT /persons/:id, GET /persons/me/summary, PUT /persons/:id/user-link, POST /persons/:id/archive 4. Neuer Endpunkt `POST /api/v1/persons/:person_id/invite`: - Prueft Person + contactData (decrypted email) - 409 falls keycloakId bereits gesetzt - 400 falls kein Email vorhanden - Sucht zuerst Keycloak-User per Email (reuse, falls verwaist) - Legt neuen KC-User an oder verknuepft existierenden - Setzt keycloakId auf Person - Sendet execute-actions-email (UPDATE_PASSWORD) 5. Tests aktualisiert + neue invite-Tests 6. Autorisierungsmatrix aktualisiert refs #(wird spaeter ergaenzt)
niboer self-assigned this 2026-07-02 21:54:09 +00:00
Sign in to join this conversation.
No description provided.