vcard4reseller/backend
Thomas Peterson bcc06e697b Rechte: User in Employee verschmolzen (eine Identität pro Person)
Beseitigt die Doppelung Admin-Login vs. Mitarbeiter — jeder ist ein Employee
mit optionalem Login/Rechtegruppe (Voraussetzung für Mitarbeiter-Zeiterfassung).

- Employee implementiert UserInterface/PasswordAuthenticated (loginEmail unique,
  password, roles); User-Entität entfernt; Security-Provider → Employee.loginEmail
- Plattform = Reseller mit isPlatform + Org-Firma; Reseller haben Org-Firma
  (Company.isResellerOrg) für ihr Personal → alles = Reseller→Firma→Mitarbeiter
- TenantContext leitet Reseller/Company aus dem Mitarbeiter ab (Reseller-/
  Plattform-Admin = reseller-weit)
- UserAdminController: Login pro Mitarbeiter vergeben/entziehen
  (POST/DELETE /api/employees/{id}/login), /api/users = Logins-Übersicht
- Provisioning/Seed auf das neue Modell; Migrationen zu einer Baseline gesquasht
- Frontend: EmployeesView Login-Block + UsersView (Logins-Übersicht)

Verifiziert: Login, /me, Mandantenscoping, delegierter Grant (Eskalation→403),
öffentliches Profil, SPA-Flow.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-01 17:27:38 +02:00
..
bin Fundament: Symfony+API-Platform-Backend & Vue-SPA (Phase 0–2) 2026-05-31 11:12:53 +02:00
config Rechte: User in Employee verschmolzen (eine Identität pro Person) 2026-06-01 17:27:38 +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: User in Employee verschmolzen (eine Identität pro Person) 2026-06-01 17:27:38 +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