vcard4reseller/backend
Thomas Peterson 2dc40c6ea5 Rechte: Mitarbeiter & Benutzer vereint, ROLE_CONTACT als Basis
- Jeder Mitarbeiter hat (leere) Login-/Passwortfelder; Standardrolle ROLE_CONTACT
  (reines Profil). Hochstufen über die Rechtegruppe.
- Ebenen-Ladder: contact(0) < employee(1) < company_admin(2) < reseller_admin(3)
  < platform_admin(4); role_hierarchy + RoleService entsprechend.
- PATCH /api/employees/{id}/access: Rechtegruppe setzen (+ optional Passwort/Login);
  DELETE .../login → zurück auf Kontakt.
- Sicherheit: Passwort/userIdentifier per #[Ignore] aus der API-Serialisierung.
- Frontend: separate Benutzer-Ansicht entfernt; Mitarbeiter-Liste mit
  Rechtegruppe-Spalte, Rollen/Login + 'Arbeiten als' inline im Bearbeiten-Dialog.

Verifiziert: kein Passwort-Leak, roles/login im Payload, Hochstufen Kontakt→
Mitarbeiter + Login, Eskalation→403, Login entziehen→Kontakt; UI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 21:44:57 +02:00
..
bin Fundament: Symfony+API-Platform-Backend & Vue-SPA (Phase 0–2) 2026-05-31 11:12:53 +02:00
config Rechte: Mitarbeiter & Benutzer vereint, ROLE_CONTACT als Basis 2026-06-01 21:44:57 +02:00
migrations Rechte: User in Employee verschmolzen (eine Identität pro Person) 2026-06-01 17:27:38 +02:00
public Deployment: Hetzner Cloud via Terraform (Multi-Node, skalierbar) 2026-05-31 21:20:58 +02:00
src Rechte: Mitarbeiter & Benutzer vereint, ROLE_CONTACT als Basis 2026-06-01 21:44:57 +02:00
templates Deployment: Hetzner Cloud via Terraform (Multi-Node, skalierbar) 2026-05-31 21:20:58 +02:00
.editorconfig Fundament: Symfony+API-Platform-Backend & Vue-SPA (Phase 0–2) 2026-05-31 11:12:53 +02:00
.env Deployment: Caddy-Edge (TLS + On-Demand für Custom-Domains) + Hetzner DNS 2026-05-31 22:13:29 +02:00
.env.dev Fundament: Symfony+API-Platform-Backend & Vue-SPA (Phase 0–2) 2026-05-31 11:12:53 +02:00
.gitignore Fundament: Symfony+API-Platform-Backend & Vue-SPA (Phase 0–2) 2026-05-31 11:12:53 +02:00
compose.override.yaml Fundament: Symfony+API-Platform-Backend & Vue-SPA (Phase 0–2) 2026-05-31 11:12:53 +02:00
compose.yaml Fundament: Symfony+API-Platform-Backend & Vue-SPA (Phase 0–2) 2026-05-31 11:12:53 +02:00
composer.json Skalierbarkeit: Druck-Assets in S3-Object-Storage (Flysystem) 2026-05-31 20:56:51 +02:00
composer.lock Skalierbarkeit: Druck-Assets in S3-Object-Storage (Flysystem) 2026-05-31 20:56:51 +02:00
symfony.lock Skalierbarkeit: Druck-Assets in S3-Object-Storage (Flysystem) 2026-05-31 20:56:51 +02:00