← Alle Module |
A
Anmeldung & Profil
Grundfunktion

Anmeldung & Profil

Anmeldung, Passwort-Selbstverwaltung und das eigene Benutzerprofil stehen jedem Benutzer unabhängig von lizenzierten Fachmodulen zur Verfügung. Diese Seiten bilden die Grundlage, bevor überhaupt ein Einsatz oder Fachmodul aufgerufen werden kann.

Mandanten-Erkennung per Hostname Self-Service-Passwort-Reset Dunkelmodus
Voraussetzung für „Passwort zurücksetzen": Diese Funktion ist nur sichtbar und erreichbar, wenn der Server mit einem SMTP-Server konfiguriert wurde (h.Mailer.IsConfigured()). Ohne E-Mail-Konfiguration — z. B. in einer lokalen Testinstallation — verschwindet der Link „Passwort vergessen?" von der Anmeldeseite vollständig, und /passwordReset leitet auf die Anmeldeseite zurück.
🔑

Anmelden

Route: GET/POST /login · öffentlich, kein Login erforderlich

Anmeldeformular mit Mandant, Benutzername und Passwort

Das Anmeldeformular besteht aus bis zu drei Feldern: Mandant, Benutzername und Passwort. Ob das Mandantenfeld überhaupt angezeigt wird, hängt davon ab, ob rk den Mandanten bereits automatisch anhand des aufgerufenen Hostnamens bestimmen konnte.

Mandanten-Erkennung per Hostname

Beim Aufruf der Anmeldeseite prüft tenantFromHostname() den Host-Header der Anfrage (z. B. demo-drk.local, Port wird dabei automatisch entfernt) gegen die in der Mandantenverwaltung hinterlegten Hostnamen:

  • Hostname bekannt (z. B. Aufruf über https://demo-drk.local): Der Mandantenname wird oberhalb des Formulars angezeigt, das Eingabefeld Mandant entfällt — der Mandant steht für diese Anmeldung bereits fest.
  • Hostname unbekannt (z. B. lokaler Testaufruf über localhost, oder ein Hostname, der bei keinem Mandanten als Hostname hinterlegt ist): Das Feld Mandant wird eingeblendet und muss von Hand ausgefüllt werden (Mandantenname, nicht Hostname). Bleibt es leer, versucht rk die Anmeldung gegen den internen System-Mandanten.

Im Produktivbetrieb mit eigenem DNS-Eintrag pro Mandant (siehe Mandantenverwaltung) entfällt das Mandantenfeld dadurch im Alltag vollständig — Benutzer geben nur Benutzername und Passwort ein.

Sicherheit: Das Formular ist über ein CSRF-Token (xsrftoken) abgesichert, und Anmeldeversuche unterliegen einem Rate-Limiter (mw.LoginRateLimiter) — nach zu vielen fehlgeschlagenen Versuchen werden weitere Anmeldungen für kurze Zeit blockiert.
🔒

Passwort zurücksetzen

Routen: GET/POST /passwordReset, GET/POST /passwordReset/{token} · öffentlich

Wer sein Passwort vergessen hat, kann sich selbst einen Reset-Link per E-Mail zusenden lassen — sofern der Server mit SMTP konfiguriert ist (siehe Hinweisbox oben). Ist keine E-Mail konfiguriert, ist der Link „Passwort vergessen?" auf der Anmeldeseite gar nicht erst sichtbar.

Ablauf

  1. Auf der Anmeldeseite „Passwort vergessen?" anklicken.
  2. Benutzername eingeben (bei Mehrmandantenbetrieb ggf. zusätzlich den Mandanten).
  3. „Reset-Link anfordern" absenden.
  4. Unabhängig davon, ob der Benutzername existiert oder eine E-Mail-Adresse hinterlegt ist, erscheint immer dieselbe Erfolgsmeldung (Schutz gegen das Ausspähen gültiger Benutzernamen, „User Enumeration").
  5. Bei einem Treffer mit hinterlegter E-Mail-Adresse erhält der Benutzer einen Link der Form /passwordReset/{token} per E-Mail.
  6. Über diesen Link öffnet sich das Formular zur Vergabe eines neuen Passworts.

Passwortanforderungen & Token-Gültigkeit

  • Mindestens 8 Zeichen, mit Groß-, Kleinbuchstaben und Ziffer (validate.PasswordStrength).
  • Der Reset-Token ist einmalig — nach erfolgreicher Nutzung wird er gelöscht (DeletePasswordResetToken).
  • Ein ungültiger oder bereits verwendeter Token führt zur Meldung „Der Reset-Link ist ungültig oder abgelaufen."
Hinweis für Administratoren: Auch ohne dass sich der Benutzer selbst meldet, kann ein Administrator über die Benutzerverwaltung jederzeit eine Reset-E-Mail für einen Benutzer erneut anstoßen.
🔁

Passwort ändern

Route: GET/POST /user/changePassword · Menüpfad: Profil → Passwort ändern

Formular Passwort ändern mit Eingabefeldern für neues Passwort und Bestätigung

Jeder angemeldete Benutzer kann sein Passwort jederzeit über das eigene Profil ändern. Das Formular verlangt das neue Passwort zweimal — eine clientseitige Prüfung markiert das Bestätigungsfeld rot, solange beide Eingaben nicht übereinstimmen.

Erzwungene Passwortänderung

Über das Feld force_password_change kann ein Administrator beim Anlegen oder Bearbeiten eines Benutzers (siehe Benutzer anlegen die Checkbox „Passwortänderung erzwingen") festlegen, dass beim nächsten Login eine Passwortänderung verpflichtend ist:

  • Ist das Flag ForcePasswordChange beim Benutzer gesetzt, leitet PostLogin nach erfolgreicher Anmeldung direkt auf /user/changePassword weiter — alle anderen Seiten sind erst danach wieder erreichbar.
  • Nach dem Speichern des neuen Passworts wird das Flag automatisch zurückgesetzt und der Benutzer landet auf der Startseite.
Hinweis: Eine erfolgreiche Passwortänderung erfordert hier — im Gegensatz zum Self-Service-Reset über den E-Mail-Link — keine erneute Eingabe des alten Passworts, da der Benutzer ohnehin bereits angemeldet ist.
👤

Eigenes Profil

Route: GET /user/profile · Menüpfad: Benutzername (oben rechts) → Einstellungen

Profilseite mit Rollen-Badges, Kontoinformationen, E-Mail-Adresse-Karte und Dunkelmodus-Schalter

Die Profilseite zeigt die eigenen Kontodaten in vier Bereichen: Kopfkarte mit Name, Benutzername und allen zugewiesenen Rollen-Badges, eine Karte Kontoinformationen, eine Karte E-Mail-Adresse sowie die Einstellungen zur Darstellung.

Angezeigte Kontoinformationen

  • Rollen-Badges — alle dem Benutzer zugewiesenen Rollen, identisch zur Darstellung in der Benutzerliste (siehe dort für die vollständige Rollenliste).
  • Erstellt am — Zeitpunkt der Benutzeranlage.
  • Letzter Login — Zeitpunkt der letzten erfolgreichen Anmeldung.
  • Status „Deaktiviert" — erscheint nur, wenn das eigene Konto deaktiviert wurde (in der Praxis kann sich ein deaktivierter Benutzer ohnehin nicht mehr anmelden).

Aktionen

Über die Schaltfläche Passwort ändern gelangt man direkt zum unter Passwort ändern beschriebenen Formular.

E-Mail-Adresse ändern

Jeder angemeldete Benutzer kann seine eigene E-Mail-Adresse direkt auf der Profilseite aktualisieren. Die Karte E-Mail-Adresse zeigt das aktuelle Eingabefeld vorausgefüllt mit der gespeicherten Adresse.

  1. Im eigenen Profil zur Karte E-Mail-Adresse scrollen.
  2. Die gewünschte Adresse in das Eingabefeld eintragen (max. 256 Zeichen).
  3. Speichern anklicken — die Anfrage geht an PUT /user/email.
  4. Bei Erfolg erscheint direkt unterhalb des Feldes eine grüne Meldung „E-Mail-Adresse gespeichert."; bei einem Fehler (z. B. ungültiges Format) eine rote Fehlermeldung.
Hinweis: Die E-Mail-Adresse wird u. a. für den Self-Service-Passwort-Reset benötigt (siehe Passwort zurücksetzen). Ohne hinterlegte Adresse kann kein Reset-Link zugestellt werden.
Datenschutz: Die Profilseite zeigt ausschließlich Daten des eigenen Kontos — es gibt keinen Weg, von hier aus die Profile anderer Benutzer einzusehen. Dafür ist die rollenbeschränkte Benutzerverwaltung zuständig.
🌓

Darstellung (Dunkelmodus)

Route: PUT /user/settings · Bereich „Darstellung" auf der Profilseite

Jeder Benutzer kann individuell zwischen hellem und dunklem Erscheinungsbild wechseln. Die Einstellung wird pro Benutzer dauerhaft gespeichert (tbl_users.dark_mode) und gilt damit für alle künftigen Sitzungen und Geräte, auf denen sich derselbe Benutzer anmeldet.

Bedienung

  1. Im eigenen Profil zum Bereich Darstellung scrollen.
  2. Schalter Dunkelmodus umlegen.
  3. Die Oberfläche wechselt sofort das Theme (data-bs-theme) — ohne Neuladen der Seite.
  4. Im Hintergrund sendet der Schalter PUT /user/settings mit {"dark_mode": true/false}; schlägt das fehl, macht das Frontend die optische Änderung automatisch wieder rückgängig.
Hinweis für Screenshots/Support: Da die Einstellung dauerhaft am Benutzerkonto hängt, sieht ein Benutzer beim nächsten Login auf einem anderen Rechner automatisch wieder dasselbe Theme. Beim Vergleichen von Bildschirmfotos mit Kollegen lohnt sich daher ein kurzer Blick auf diesen Schalter.