using Avalonia.Controls; using Avalonia.Interactivity; using ChronoFlow.Model; namespace ChronoFlow.View.Security; /// /// Dialog zum Ändern des Passworts eines Benutzers. /// public partial class PasswortAendernDialog : Window { /// /// Das neue Passwort, das im Dialog eingegeben wurde. /// public string NeuesPasswort { get; private set; } = ""; private readonly User _user; /// /// Parameterloser Konstruktor für Avalonia (z. B. für Preview, AVLN:0005-Fix). /// ⚠ Wird nur für Entwicklungszwecke oder Design-Time genutzt. /// public PasswortAendernDialog() : this(new User { Username = "DemoUser", Role = "Mitarbeiter" }) { System.Console.WriteLine("⚠ Parameterloser Konstruktor für PasswortAendernDialog verwendet."); } /// /// Konstruktor mit Benutzerobjekt (wird im echten Ablauf verwendet). /// /// Der aktuell eingeloggte Benutzer. public PasswortAendernDialog(User user) { InitializeComponent(); _user = user; } /// /// Wird aufgerufen, wenn der Benutzer auf "Speichern" klickt. /// Prüft Eingaben und schließt den Dialog mit dem neuen Passwort. /// private void SpeichernButton_Click(object? sender, RoutedEventArgs e) { var passwort = NeuesPasswortBox.Text?.Trim(); var bestaetigen = BestaetigenBox.Text?.Trim(); if (string.IsNullOrWhiteSpace(passwort) || string.IsNullOrWhiteSpace(bestaetigen)) { FehlerText.Text = "Bitte alle Felder ausfüllen."; FehlerText.IsVisible = true; return; } if (passwort != bestaetigen) { FehlerText.Text = "Passwörter stimmen nicht überein."; FehlerText.IsVisible = true; return; } NeuesPasswort = passwort; Close(NeuesPasswort); } /// /// Bricht den Vorgang ab und schließt den Dialog ohne Ergebnis. /// private void AbbrechenButton_Click(object? sender, RoutedEventArgs e) { Close(null); } }