feat: Gast-Gating fürs Co-Branding Studio (nur freigeschaltete Partner) #3
Loading…
Reference in a new issue
No description provided.
Delete branch "a3/guest-gating"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Zusammenfassung
Antwort auf: "Neuer Partner soll nicht sofort Zugriff auf alles haben, sondern erst nach Gespräch mit André freigeschaltet werden."
Befund: Der Onboarding/Freigabe-Fluss war bereits korrekt gebaut (
status='pending'ohne Session-Möglichkeit, bisapprovePartner()explizit läuft, PR #1/#2). Die eigentliche Lücke lag im Frontend: Co-Branding Studio, DAM, Aktivierungs-Kit und Cockpit waren für jeden Website-Besucher frei nutzbar, unabhängig vom Freigabe-Status — der Studio-Partnername ist ein freies Textfeld, keine Bindung an einen echten, freigeschalteten Partner-Datensatz. Das widerspricht der Rollenmatrix aus dem Pflichtenheft (Kap. 5), die Co-Branding-Generator & Downloads explizit auf freigeschaltete Partner beschränkt.Änderungen
GET /api/session/me: meldet, ob ein gültiges Session-Cookie vorliegt (aus/auth/verify, PR #2) und zu welchem Partner.POST /api/session/logout: löscht das Session-Cookie.<Partner>" mit Abmelden-Link, sobald eine gültige Session vorliegt.Bewusst nicht Teil dieses PRs
ks-crm-Checkbox-Integration (damit André direkt aus seinem CRM-Profil heraus freischalten kann, statt curl/API) ist ein Cross-Repo-Task inkurven-schule-neu-wp— folgt separat./trainer-werden/noch keinen eigenen Portal-Zugang zum regionalen Partner-Netzwerk (Händler/Hotels in ihrer Region) — ebenfalls separater Folge-PR (Backlog).Hinweis zur UI-Verifikation
Die Gating-Logik ist per Unit-Test auf Funktions-/Endpoint-Ebene abgesichert (34/34 grün), aber nicht in einem echten Browser durchgeklickt — das sollte vor/nach dem Merge einmal manuell auf
https://partner.kurvenschule.cloudnachgeholt werden (Studio-Tab als Gast anklicken → Sperr-Hinweis, dann Magic-Link-Login → alles frei).Test plan
npm test— 34/34 grün (4 neue Tests:/api/session/memit/ohne Cookie,/api/session/logout, Gating-Funktionen im Bundle)🤖 Generated with Claude Code