feat: Mandant/Reseller ohne E-Mail anlegbar (Temp-Passwort statt Einladung)

- admin_email bzw. reseller email optional; ohne E-Mail wird interne Login-
  Kennung (<name>@<slug>.local) + einmaliges Temp-Passwort erzeugt, Account
  sofort aktiv, kein Mailversand
- TenantOut/ResellerOut: initial_password (einmalig) ergänzt
- LoginRequest.email: str statt EmailStr (Kennung muss kein zustellbares
  Postfach sein; .local-Domains sind sonst nicht einloggbar)
- Frontend: E-Mail-Felder optional, CredDialog zeigt Login + Temp-Passwort einmalig
- Test: Anlage ohne E-Mail + Login mit generierten Zugangsdaten; 173/173 grün

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-23 01:34:23 +02:00
co-authored by Claude Opus 4.8
parent fcda813ba6
commit 9e1ba2bd91
9 changed files with 215 additions and 56 deletions
+28
View File
@@ -1994,3 +1994,31 @@ Keine Commits in dieser Session.
- frontend/src/pages/QrStampSettingsPage.tsx | 247 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
---
## 2026-06-23 00:50 01:22 (32m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- 898a81f feat: Reseller-Rolle + SUPER_ADMIN-Mandantenübersicht
### Geänderte Dateien
- DEVLOG.md | 48 +++++++++++++++++++++++
- backend/app/core/dependencies.py | 10 ++++-
- backend/app/main.py | 3 ++
- backend/app/models/company.py | 18 ++++++++-
- backend/app/models/user.py | 5 ++-
- backend/app/routers/reseller.py | 83 ++++++++++++++++++++++++++++++++++++++++
- backend/app/routers/tenants.py | 201 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- backend/app/schemas/reseller.py | 69 ++++++++++++++++++++++++++++++++++
- backend/app/services/auth_service.py | 7 ++++
- backend/app/services/tenant_service.py | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- backend/migrations/versions/0034_reseller.py | 70 ++++++++++++++++++++++++++++++++++
- backend/tests/conftest.py | 14 +++++--
- backend/tests/test_reseller.py | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- frontend/src/App.tsx | 4 ++
- frontend/src/components/Layout.tsx | 1 +
- frontend/src/context/AuthContext.tsx | 8 +++-
- frontend/src/pages/ResellerCompaniesPage.tsx | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- frontend/src/pages/TenantsPage.tsx | 255 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
---