 patrickandClaude Sonnet 4.6
|
d0930ad6c2
|
feat: Sondervertretungen als eigene HR-Seite (/hr/special-assignments)
- Neue Seite SpecialAssignmentsPage mit Filter, Tabelle, Add/Edit-Modal
- Farbcodierung: Faktor >1.0 amber, <1.0 blau, =1.0 grau
- Monat-Filterung client-seitig, paralleles Laden in Batches
- Layout.tsx: Nav-Eintrag in Hauptnavigation
- App.tsx: Route /hr/special-assignments
- UsersPage: Sondervertretungs-Block aus Edit-Modal entfernt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-25 01:13:03 +02:00 |
|
 patrickandClaude Sonnet 4.6
|
299cc52d76
|
feat: mobile Login-Seite /mobile/login
- MobileLoginPage.tsx: touch-optimiertes Login-Formular
- E-Mail + Passwort mit großen Touch-Targets (min-h-[52px])
- TOTP-Flow: nach erstem Login automatisch 6-stelliges Code-Feld
- Numerische Tastatur (inputMode=numeric) für TOTP-Eingabe
- Fehlerbehandlung + Ladezustand
- Link zur Desktop-Version
- MobilePage: Redirect zu /mobile/login statt /login
- App.tsx: Route /mobile/login registriert (kein Layout-Wrapper)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-24 21:17:32 +02:00 |
|
 patrickandClaude Sonnet 4.6
|
b547cdda33
|
feat(kiosk): Stufe 3 – ServiceWorker, WebCrypto Setup-Flow, Kiosk-UI, 15 Security-Tests
3A – Frontend Kiosk-Modus:
- public/kiosk-sw.js (NEU, 187 Zeilen): ServiceWorker signiert alle /api/v1/kiosk/
Requests automatisch mit Ed25519. Keypair-Generierung intern (non-extractable),
Speicherung in IndexedDB. BroadcastChannel-Leader-Election für Heartbeat.
- KioskSetupPage.tsx (NEU, 307 Zeilen): Enrollment-Flow unter /kiosk/setup.
Keypair-Generierung via WebCrypto im ServiceWorker, Public Key als PEM anzeigen.
Browser-Kompatibilitäts-Check (Ed25519 ab Chrome 113+).
- KioskStampPage.tsx (NEU, 348 Zeilen): Kiosk-UI unter /kiosk.
Live-Uhr mit Server-Zeit-Offset, Heartbeat-Loop 30s, Online/Offline-Indikator.
- App.tsx: /kiosk und /kiosk/setup Routen außerhalb ProtectedRoute
3B – Tests:
- tests/test_kiosk_security.py (NEU, 387 Zeilen): 15/15 Tests grün
Abgedeckt: gültige Signatur, falscher Key, Replay-Schutz, Timestamp-Drift,
Future-Timestamp, pending/revoked Device, unbekanntes Gerät, fehlende Header,
Lifecycle-Tests, heartbeat_status nach Heartbeat
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-24 12:23:03 +02:00 |
|
 sysopsandClaude Sonnet 4.6
|
45218cc744
|
Initial commit – TimeMaster Zeiterfassung & HR-Tool
Stand: agent-06 (Audit-Log), agent-05 (Krankmeldung), agent-07 Phase 1 (Personalnummer),
Busylight-Pull-Integration, TOTP/2FA, Abwesenheiten, Zeiterfassung, Kiosk-Grundgerüst.
Migrations 0001–0023 deployed auf 192.168.1.137 + .164.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-23 20:03:27 +02:00 |
|