P2503 · Projektpartnerportal · RSM-Fallback

PPP-ID Feld auf Drupal User

REFINED P2503-198 Erstellt & Refined: 2026-05-30 (via solcom-grill)

User Story

Als Systemadministrator möchte ich auf dem Drupal-User-Account einer Projektpartnerin eine PPP-ID (Projektpartnerportal-ID aus dem Altsystem) speichern können, damit diese ID in zukünftigen Bewerbungsmails und der späteren Nutzer-Migration verwendet werden kann.

Outcome

Ein neues Feld field_ppp_id (Integer, einzigartig) ist auf dem Drupal-User-Entity vorhanden. Admins können es in der User-Bearbeitungsmaske eintragen. Das Feld ist nicht öffentlich sichtbar. Die Bewerbungs-Story (RSM Bewerbungs-Webform) kann den Wert auslesen.

Scope

In Scope

  • Base Field field_ppp_id auf der user-Entity: Typ Integer, Unique-Constraint, Nullable (nicht zwingend befüllt)
  • Sichtbar und editierbar für Admins in /admin/people/[uid]/edit
  • Nicht sichtbar für Bewerber im Frontend
  • Implementation via hook_entity_base_field_info() in einem geeigneten Custom-Modul (z. B. solcom_project_offer oder neues solcom_user-Modul)
  • hook_update_N zum Anlegen des Felds auf bestehenden Instanzen

Out of Scope

  • Bestandsnutzer-Migration (PPP-IDs aus dem alten Projektpartnerportal) — separater, späterer Task
  • Auto-Assignment von PPP-IDs bei Neuregistrierung — klärt sich nach Migrations-Task
  • Öffentliches Profil-Feld für Bewerber

Akzeptanzkriterien

  1. Das Feld field_ppp_id existiert auf dem User-Entity und ist speicherbar.
  2. In /admin/people → User-Edit ist das Feld „PPP-ID" sichtbar und ein Integer-Wert kann eingetragen werden.
  3. Der gespeicherte Wert ist über $user->get('field_ppp_id')->value auslesbar.
  4. Zwei Nutzer können nicht die gleiche PPP-ID haben (Unique-Constraint).
  5. Das Feld ist im Frontend-Profil des Nutzers nicht angezeigt.

QA-Plan (Click-Pfade)

AKURLAktionErwartet
1+2/admin/people/{uid}/editFeld „PPP-ID" mit Integer ausfüllen, speichernSpeichern erfolgreich, Wert bleibt erhalten
3Drush: drush php-eval "print \Drupal::entityTypeManager()->getStorage('user')->load(1)->get('field_ppp_id')->value;"Wert auslesenEingetragener Integer-Wert erscheint
4/admin/people/{uid2}/editGleiche PPP-ID bei zweitem User eintragenValidierungsfehler: ID bereits vergeben
5/user/{uid} (Frontend-Profil)Profil-Seite aufrufenPPP-ID nicht sichtbar

Abhängigkeiten

Offene Fragen

Modul-Zuordnung: field_ppp_id in solcom_project_offer oder separates solcom_user-Modul? Empfehlung: eigenes Modul, da User-Felder kein direktes Abhängigkeitsverhältnis zu Projektangeboten haben sollten.
PPP-ID-Format: Numerisch (Integer) bestätigt. Maximale Größe / Ober­grenze noch unklar — abhängig vom Bestand im Altsystem.