- Rollensystem: Public → Mitarbeiter → Admin (Rolle user entfällt) - DB-Migration: must_change_password-Spalte, user→mitarbeiter - require_staff_api(): erlaubt mitarbeiter + admin - POST /api/admin/invite: Einladung mit auto-generiertem Passwort + E-Mail - POST /auth/change-password: Pflicht-Passwortwechsel - Login: force_password_change-Redirect - Sidebar: sidebar-staff für Scheduler/NINA/Einstellungen - Scheduler/NINA: read-only für Mitarbeiter Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Scheduler Nachrichten: Template-Variablen {time}, {date}, {datetime}, {weekday}, {nodes}, {nodes_24h} serverseitig aufgelöst - Scheduler UI: klickbare Variablen-Badges beim Nachrichtenfeld-Modus - Footer auf allen Seiten: © MeshDD / PPfeiffer · vX.Y.Z · MM/YYYY - Fix: WS-Verbindungen vor runner.cleanup() explizit geschlossen Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rollen-basiertes Zugriffsystem (public/user/admin), Registrierung mit E-Mail-Verifikation, bcrypt Passwort-Hashing, Admin-Benutzerverwaltung. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>